在数组中寻找字符串 - php

我有这个动态数组,在提交$ _POST之后生成。

Array
(
    [0] => Array
        (
            [0] => lng_criteria_balance
            [1] => Array
                (
                    [0] => lng_type_balance_positive
                )

        )

    [1] => Array
        (
            [0] => lng_criteria_sex
            [1] => Array
                (
                    [0] => F
                )

        )

    [2] => Array
        (
            [0] => lng_criteria_note
            [1] => Array
                (
                    [0] => cane
                )

        )

)

数组是可变的,它也是关键。
我需要搜索是否存在指定的值。我确实尝试过但是

<?php
 if (in_array('lng_criteria_balance', $args))
 {
   echo 'found!';
 }
 else
 {
   echo 'not found :(';
 }

但是它会打印“未找到”。
谢谢。

PS我可以使用foreach循环进行检查,但是我不会使用它(以获得最佳性能)

参考方案

对于多维数组,您需要递归检查。

这样做:

function in_array_r($needle, $haystack, $strict = false) {
    foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
            return true;
        }
    }

    return false;
}

输出:

echo in_array_r("lng_criteria_balance", $your_array_variable) ? 'found' : 'not found';

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…