par
visualight » 06 mars 2010, 14:41
Bonjour,
J'ai trouvé un code qui fait en sorte de retrouver un INDEX PRIMAIRE par rapport à un texte donné (se situant dans l'array) :
http://fr2.php.net/manual/fr/function.a ... .php#92991
Mais sil ne fonctionne pas ... pourtant, c'est bien ça qu'il me faut.
$array = array (
"shoes" => array("test1"=> "123","test2"=>"1234","test3"=>"12345"),
"shoes2"=> array("test1"=>"324","test2"=>"3515","test3"=>"123131")
);
array_search_value("123",$array,"test1"); // would return shoes
Voici le code que la personne fournis :
function array_search_value($needle,$haystack,$arraykey=FALSE) {
foreach($haystack as $key=>$value) {
$current_key=$key;
if($arraykey){
if($needle == $value[$arraykey]){
return 'value1'.$value['id'];
}
if(array_search_value($needle,$value[$arraykey]) == true) {
return 'value2'.$current_key;
}
}else{
if($needle == $value)
return 'value3'.$value;
if(array_search_value($needle,$value) == true) {
return 'value4'.$current_key;
}
}
}
return false;
}
Quand je fais un echo ou print_r de :
array_search_value("123",$array,"test1");, il ne me renvoie rien mis à part : "value1" alors qu'il devrait renvoyer "shoes". (C'est moi qui ai rajouté value1, value2 ... dans la fonction (pour avoir un retour même si vide)).
Avez-vous une idée , j'en ai vraiment besoin.
Merci,
raph
Bonjour,
J'ai trouvé un code qui fait en sorte de retrouver un INDEX PRIMAIRE par rapport à un texte donné (se situant dans l'array) :
http://fr2.php.net/manual/fr/function.array-search.php#92991
Mais sil ne fonctionne pas ... pourtant, c'est bien ça qu'il me faut.
[php]$array = array (
"shoes" => array("test1"=> "123","test2"=>"1234","test3"=>"12345"),
"shoes2"=> array("test1"=>"324","test2"=>"3515","test3"=>"123131")
);[/php]
[php]array_search_value("123",$array,"test1"); // would return shoes[/php]
Voici le code que la personne fournis :
[php]function array_search_value($needle,$haystack,$arraykey=FALSE) {
foreach($haystack as $key=>$value) {
$current_key=$key;
if($arraykey){
if($needle == $value[$arraykey]){
return 'value1'.$value['id'];
}
if(array_search_value($needle,$value[$arraykey]) == true) {
return 'value2'.$current_key;
}
}else{
if($needle == $value)
return 'value3'.$value;
if(array_search_value($needle,$value) == true) {
return 'value4'.$current_key;
}
}
}
return false;
}[/php]
Quand je fais un echo ou print_r de : [b]array_search_value("123",$array,"test1");[/b], il ne me renvoie rien mis à part : "value1" alors qu'il devrait renvoyer "shoes". (C'est moi qui ai rajouté value1, value2 ... dans la fonction (pour avoir un retour même si vide)).
Avez-vous une idée , j'en ai vraiment besoin.
Merci,
raph