ich dieses Array haben:PHP löschen Sub-Array von mehrdimensionalen Arrays von Sub-Array-Schlüsselwert
array(5) {
[0]=>
array(4) {
["nachricht"]=>
string(9) "blablaaaa"
["user"]=>
string(15) "334607943355808"
["datum"]=>
string(16) "18.09.2014 11:13"
["deleted"]=>
string(0) ""
}
[1]=>
array(4) {
["nachricht"]=>
string(3) "joo"
["user"]=>
string(15) "334607943355808"
["datum"]=>
string(16) "18.09.2014 11:56"
["deleted"]=>
string(15) "334607943355808"
}
[2]=>
array(4) {
["nachricht"]=>
string(4) "noma"
["user"]=>
string(15) "334607943355808"
["datum"]=>
string(16) "18.09.2014 11:56"
["deleted"]=>
string(0) ""
}
[3]=>
array(4) {
["nachricht"]=>
string(4) "test"
["user"]=>
string(15) "334607943355808"
["datum"]=>
string(16) "18.09.2014 11:56"
["deleted"]=>
string(0) ""
}
[4]=>
array(4) {
["nachricht"]=>
string(4) "doh!"
["user"]=>
string(15) "334607943355808"
["datum"]=>
string(16) "18.09.2014 11:56"
["deleted"]=>
string(0) ""
}
}
Ich möchte alle Subarrays löschen, die den Wert 334607943355808 im Schlüssel "gelöscht" sind in das Unterfeld. Ich habe diesen Code:
if(($key = array_search("334607943355808", $array)) !== false) {
unset($array[$key]);
}
aus: PHP array delete by value (not key) wo es nicht Multi-Array ist, aber wie kann ich es in meinem Fall?
EDIT:
Ich habe versucht es auf diese Weise jetzt:
foreach($array as $delete){
if(($key = array_search("334607943355808", $delete)) !== false) {
unset($delete[$key]);
}
}
Aber es funktioniert nicht
Sie Rekursion benötigen verwenden können. –
Verwenden Sie eine verschachtelte foreach-Schleife und überprüfen Sie die Werte, um zu sehen, ob sie Ihre Nummer enthalten? – TheOneWhoSighs
nicht so flexibel, aber in diesem Fall wird es genauso gut funktionieren. –