preg_grep不适用于多维数组

时间:2015-04-17 07:00:25

标签: php arrays regex preg-grep

我有一个名为$jsonvpr的数组。当尝试拉preg_grep类似preg_grep("/Jake.*.Peavy/i", $jsonvpr)时,它会多次返回Notice: Array to string conversion in /var/www/html/crawlnew.php on line 310(我在数组上每次输入一次),并且它不会返回任何内容。我怀疑问题是不仅有数组,而是数组数组,这就是为什么它不能按我的意愿工作,但我不知道该怎么办。拜托,任何人都可以指出我正确的方向吗?

数组的样本:

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) ""
  }
  [...]

1 个答案:

答案 0 :(得分:0)

您可以先将所有名称放入数组,然后将preg_grep放入:

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

其中array_column的第二个参数1是要匹配的数组元素的索引。