Рейтинг:
6
Christiaan van Bergen
В вашем коде вы хотите удалить все массивы в массиве $a, которые имеют элемент с ключом "first_name". Вы не проверяете фактическое значение. Попробовать это:
function removeElementWithKey($array, $keyToRemove){
foreach($array as $subArray)
{
foreach(array_keys($subArray) as $keyIndex => $key)
{
if ($key == $keyToRemove)
{
array_splice($subArray, $keyIndex, 1);
}
}
}
return $array;
}
$data= removeElementWithKey($a, 'first_name');
print_r($data);
Я использовал array_splice вместо unset(). Это оставит вашу индексацию в такте.
Вы можете проверить код здесь :
PHP код - 39 строк - codepad[
^]
Dipali Nigade
нет, я хочу удалить first_name из массива
Christiaan van Bergen
Что? Тогда почему вы формулируете свой вопрос так : "я хочу удалить идентификатор из всего подмассива" ? В этом нет никакого смысла.
Пожалуйста, улучшите свой вопрос!
Dipali Nigade
Да сэр я просто улучшаю это
Christiaan van Bergen
Итак, я вижу, что вы также изменили вызов функции. Итак, вы хотите удалить все элементы ключ-значение с ключом "first_name"? Независимо от фактического значения?
Dipali Nigade
да, я хочу удалить все элементы key-values с first_name
Patrice T
Это хорошая идея, чтобы показать результат, который вы хотите.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Christiaan van Bergen
Ну вот, я изменил свой ответ. (Кроме того, я взял на себя смелость предложить другое имя функции, вы больше не ищете значение)
Dipali Nigade
Здравствуйте сэр я меняю код но даю предупреждение
Предупреждение: недопустимое смещение строки 'first_name' в D:\wamp\www\core_php_demo\array_demo.php на линии 25
Christiaan van Bergen
Thx для хедз-апа, это проблема с написанием кода в текстовых полях, а не в чем-то, где вы можете его проверить. Я просто обновил ответ и добавил ссылку на codepad.org где вы можете запустить код.