2014-09-18 4 views
0

В моем коде у меня есть такое заявление:Как извлечь подстроку

$last_100_char = substr($str[0], -100); 

Я хочу, чтобы получить последние 100 символов первого элемента массива, но при этом это я, получаю некоторые ошибка

substr() ожидает, что параметр 1 является строкой, массив задан.

как исправить это?

+0

check '$ str [0]' значение. что находится в '$ str [0]'? –

+3

скорее всего '$ str [0]' все еще является массивом 'print_r ($ str)', чтобы узнать – Ghost

+0

добавить переменную '$ str' под вопросом – Girish

ответ

0

Ошибка произошла из-за того, что первый параметр, то есть $str[0], по-прежнему представляет собой массив. В качестве еще одного более эффективного метода, чтобы получить первый элемент массива, вы можете использовать метод array_shift().

$first=array_shift(array_values($array)); 
echo substr($first, -100); 
+0

Я тестировал это, но я получаю такое же сообщение об ошибке .. –

+0

Тогда проблема с вашим массивом. Пожалуйста, разделите значения массива. – Jenz

0

Ваш пример отлично работает, когда я его тестирую.

Убедитесь, что на самом деле $str[0] содержит строку, выполнив print_r($str);

+0

Это строка, но почему я, м получаю сообщение об ошибке ..? –

+0

Не могли бы вы вставить весь код, включая массив, и вывод print_r? –

0

Я получил ответ

Первоначально я сделал

$str[] = explode(';',$job_record ['JD']); 

$last_100_char = substr($str[0], -100); 

Так я получаю эту ошибку ..

Теперь я сделал это как

$str['data']=explode(';',$job_record ['JD']); 

$last_100_char = substr($str['data'][0], -100); 

Теперь я получаю правильный вывод ...

+0

Вы можете просто сделать это как '$ str = explode (';', $ job_record ['JD']); $ last_100_char = substr ($ str [0], -100); ' –

+0

Ya, спасибо .. –

Смежные вопросы