2015-04-17 5 views
0

У меня есть массив массивов под названием $jsonvpr. При попытке вытащить preg_grep, как preg_grep("/Jake.*.Peavy/i", $jsonvpr), он возвращает Notice: Array to string conversion in /var/www/html/crawlnew.php on line 310 кучу раз (я полагаю один раз за запись в массиве), и он ничего не возвращает. Я подозреваю, что проблема заключается не только в массивах, но и массивах массивов, и поэтому он не работает так, как я хотел, но я не знаю, как это сделать. Пожалуйста, кто-нибудь может указать мне в правильном направлении?preg_grep не работает над многомерными массивами

образец того, как массив будет:

array(102) { 
    [0]=> 
    array(8) { 
    [0]=> 
    string(4) "Rank" 
    [1]=> 
    string(6) "Player" 
    [2]=> 
    string(13) "Games Started" 
    [3]=> 
    string(16) "Excellent Starts" 
    [4]=> 
    string(14) "Neutral Starts" 
    [5]=> 
    string(11) "Poor Starts" 
    [6]=> 
    string(12) "Volatility %" 
    [7]=> 
    string(3) "VPR" 
    } 
    [1]=> 
    array(8) { 
    [0]=> 
    string(0) "" 
    [1]=> 
    string(73) "Clayton Kershaw" 
    [2]=> 
    string(0) "" 
    [3]=> 
    string(0) "" 
    [4]=> 
    string(0) "" 
    [5]=> 
    string(0) "" 
    [6]=> 
    string(0) "" 
    [7]=> 
    string(0) "" 
    } 
    [2]=> 
    array(8) { 
    [0]=> 
    string(0) "" 
    [1]=> 
    string(73) "Felix Hernandez" 
    [2]=> 
    string(0) "" 
    [3]=> 
    string(0) "" 
    [4]=> 
    string(0) "" 
    [5]=> 
    string(0) "" 
    [6]=> 
    string(0) "" 
    [7]=> 
    string(0) "" 
    } 
    [...] 
+0

Ваш массив многомерен! – Rizier123

+0

там для использования многомерного массива. – niyou

+0

Что именно вы хотите вернуть назад, всю запись массива или просто имя? –

ответ

0

Вы можете получить все имена в массив первого и preg_grep над этим:

$names = array_column($jsonvpr, 1); 
$foundElements = preg_grep("/Jake.*.Peavy/i", $names); 

Если второй аргумент array_column, 1 , является индексом элемента массива, который вы хотите сопоставить.

+0

Спасибо, это на самом деле довольно умная! Однако я сделал другой подход, но вы посадили меня на трассу! Я сделал это: 'foreach ($ jsonvpr as $ result) array_push ($ vprnames, $ result [1]);' и затем '$ pitcherpos = preg_grep ($ regex, $ vprnames);' –

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