У меня есть переменная, которая, содержащий эти вложенные массивы:Как удалить все элементы массива, кроме определенного?
echo $var;
/* Output:
Array(
[0] => Array
(
[id] => 1
[box] => 0
)
[2] => Array
(
[id] => 2
[box] => 0
)
[3] => Array
(
[id] => 3
[box] => 1
)
) */
Теперь я хочу, чтобы удалить все элементы массива выше, за исключением $numb = 2;
(значение идентификатора). Я имею в виду, что я хочу этот выход:
echo newvar;
/* Output:
Array(
[2] => Array
(
[id] => 2
[box] => 0
)
) */
Как это сделать?
На самом деле я могу сделать его часть, используя if
заявление и array_shift()
функции:
foreach($var as $key => $val) {
if($val["id"] != 2) {
array_shift($var);
}
}
Но выход кода выше, не хочу, что мне нужно.
почему бы не просто создать новый массив? '$ cleansed = $ arr [$ id_you_want]; снята с охраны ($ обр) '? гораздо эффективнее всего копировать один элемент, который вы хотите сохранить, а не многократно удалять ненужные вещи. –
@MarcB emm, неплохо ... спасибо – stack
является '2' ключом массива или значением' id' внутри него? –