da un array a 2 dimensioni, se voglio la seconda righa mi basta fare
$matrice[1]
ma se invece dell'indice conosco solo un valore ('id'=4321 per esempio) come faccio?
:master:
da un array a 2 dimensioni, se voglio la seconda righa mi basta fare
$matrice[1]
ma se invece dell'indice conosco solo un valore ('id'=4321 per esempio) come faccio?
:master:
Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
Inchinatevi difronte al Prof! Nacchio!
A me pare che l'uomo vada avanti con la retromarcia
grazie ma questa cerca in 1 array la chiave di un valore che conosci già
il mio problema più inverso, in 1 array cerco un array che ha un valori 'id' uguale a xxx
$A=array(
array('id'=>1432),
array('id'=>5432),
array('id'=>1542)
)
io voglio in $B l'array con 'id'==5432
comunque dagli esempi che seguono la spiegazione della funzione array_search si vede che ciò non esiste e va costruita![]()
Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
Inchinatevi difronte al Prof! Nacchio!
A me pare che l'uomo vada avanti con la retromarcia
aah pardòn avevo capito male...
Dunque potresti fare innanzi tutto un foreach che ti passa in rassegna tutti i sotto-array contenuti nell'array principali; per ognuno di essi puoi usare la funzione array_key_exists() per controllare se la chiave "id" esiste, e in caso positivo controlli se il suo valore e' pari a xxxx. Puo' andare?
Se invece la chiave ID c'e' sempre, e' ancora piu' facile...![]()
così?![]()
foreach ($A as $ArrayRow)
if ($ArrayRow['id'] == "5432") {$B=$ArrayRow; break; }
Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
Inchinatevi difronte al Prof! Nacchio!
A me pare che l'uomo vada avanti con la retromarcia
Una roba del genere:
EDIT: ho sistemato il foreach, avevo lasciato il break fuori dall'if...codice:$da_cercare = 4444; $A = array(array('id' => 1111, 'key2' => "asd", 'key3' => "asdasdasdasd"), array ('id' => 2222, 'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 3333, 'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 4444, 'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 5555, 'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 6666, 'key2' => "asd", 'key3' => "asdasdasdasd")); foreach ($A as $array) { if ($array['id'] == $da_cercare) { $B = $array; break;// solo se 'id' e' una chiave univoca! } } echo "<pre>"; print_r($B); echo "</pre>";![]()
![]()
![]()
Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
Inchinatevi difronte al Prof! Nacchio!
A me pare che l'uomo vada avanti con la retromarcia
comunque è assurdo che una cosa così non ci sia tra tutte quelle funzioni php disponibili ...così come mi sembra che non ci sia il modo di sapere qual è l'indice dell'elemento su cui siamo posizionatio sbaglio?
Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
Inchinatevi difronte al Prof! Nacchio!
A me pare che l'uomo vada avanti con la retromarcia
Codice PHP:
$da_cercare = 4444;
$A = array(array('id' => 1111, 'key2' => "asd", 'key3' => "asdasdasdasd"), array
('id' => 2222, 'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 3333,
'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 4444, 'key2' => "asd",
'key3' => "asdasdasdasd"), array('id' => 5555, 'key2' => "asd", 'key3' =>
"asdasdasdasd"), array('id' => 6666, 'key2' => "asd", 'key3' => "asdasdasdasd"));
function seek($array,$key, $needle){
foreach($array as $a){
if(key_exists($key,$a)&&$a[$key]==$needle){
return $a;
}
}
return null;
}
print_r(seek($A,'id', $da_cercare));
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it