【问题标题】:PHP - Lowercase Multidimensional Array without Loop [duplicate]PHP - 没有循环的小写多维数组
【发布时间】:2017-09-05 18:51:54
【问题描述】:

我有这段代码在 $array1 中寻找 $array2。

我遇到的问题是我需要将两个数组都小写,以便 in_array 匹配工作,并且此代码按预期运行,但 $array1 大于 20k 个对象 - 无论如何都可以在不丢失数组结构和循环?

$array1 = array(code => 200, status => success,
        array(
        'email' => 'Example1223@sample.com',
        'status' => 'Pending'
        ),
       array(
        'email' => 'example123@sample.com',
        'status' => 'Approved: Printed & Cleared'
        ),
      array(
        'email' => 'example23@sample.com',
        'status' => 'Approved'
        ),
      array(
        'email' => 'Example22@sample.com',
        'status' => 'Approved: Printed & Cleared'
        ),
        );

$yourArray = array();
$array = array();
foreach ($array1 as &$array){

$yourArray[] = array_map('strtolower', $array);

}

echo "<pre>"; print_r($yourArray);

$array2 = array(
        'email' => 'example1223@sample.com',
        'status' => 'Pending'
        );   

$yourArray2 = array_map('strtolower', $array2);         

if(in_array($yourArray2 , $yourArray)) {
echo "match";
} else {
echo "no match";
}

echo "<pre>"; print_r($yourArray2);

【问题讨论】:

  • 请注意array_walkarray_walk_recursive 都可以做到这一点

标签: php arrays


【解决方案1】:

你总是可以使用preg_grep()函数:

preg_grep("/ONe/i", $yourArray2);

【讨论】:

  • 注意:这可能是 20k 元素的资源密集型。
  • 比具有 20k 次迭代的循环更耗费资源? :) 我不这么认为
  • 其实可能是这样,尤其是在内存消耗方面。 loopinggrep
猜你喜欢
  • 2013-06-25
  • 2019-07-17
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多