Я не уверен, почему следующее не работает. Я получаю указанную выше ошибку (тема):
$array = array (); //something goes in here
function del_space(array $a){
foreach($a as $key => $value){
preg_replace("/; +/", "", $value);
}
}
$no_space = array_map("del_space", $array);
Я передаю ему массив, и он дает мне сообщение, что это строка. Я проверяю это с помощью is_array () на одну строку над кодом. Это сокращенная версия. Это взято из того, что я пишу в среде IDE.
массив пуст?
Если вы ищете в массиве непространство, просто используйте встроенную функцию trim ();
Разместите свой фактический код в своем актуальный вопрос. В коде, на который вы ссылаетесь на eval.in, есть дополнительная инструкция, которая является источником вашей ошибки.






array_map() зацикливает для вас $array, и поэтому я предполагаю, что каждый элемент внутри $array не является объектом массива, но del_space() требует, чтобы массив был передан ему.
Похоже, у вас есть:
$array = array( 'some item' ); // Fails
но вам нужно что-то вроде:
$array = array( array( 'some item' ) ); // Success
если вы хотите использовать array_map()
Проверьте URL-адрес eval.in. Это массив, и он не работает.
@ gs3 У меня встреча, проверю позже.
Ваша функция del_space принимает в качестве аргумента массив. array_map сам принимает каждый элемент массива (второй аргумент) и отправляет его функции обратного вызова (первый аргумент). Поэтому, если у вас нет массива массивов, это не сработает. Ваш пример должен выглядеть так:
$array = ['lblab; la'];
function del_space($a){
return preg_replace("/; +/", "", $a);
}
$no_space = array_map("del_space", $array);
print_r($no_space);
Дает вывод:
Array ( [0] => lblab;la)
Если вы хотите передать массив массивов, то ввод должен выглядеть так:
$array = [
['blabla; bla'],
['blabla2; bla2'],
];
function del_space(array $a){
foreach($a as $key => $value){
$a[$key] = preg_replace("/; +/", "", $value);
}
return $a;
}
$no_space = array_map("del_space", $array);
print_r($no_space);
С выходом:
Array ( [0] => Array ( [0] => blablabla ) [1] => Array ( [0] => blabla2bla2 ) )
Понял, спасибо! Это самый первый день, когда я пишу код, но после примерно 11 месяцев теоретического образования. Спасибо! Могу я спросить, как долго нужно поправляться / чувствовать прогресс?
Пожалуйста, я рад, что у вас все получилось. Трудно сказать, я думаю, что с PHP относительно легко изучить основы, но есть чему учиться каждый день :) php.net - отличная отправная точка, здесь есть подробное описание каждой функции с множеством примеров.
Какая линия? Ошибка кажется очевидной.