Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组\搜索未找到字符串?_Php_Arrays - Fatal编程技术网

Php 数组\搜索未找到字符串?

Php 数组\搜索未找到字符串?,php,arrays,Php,Arrays,其输出为: _IGTestScore 如果我对$className和$student['''u IGClass1]进行var_转储,我会得到: 弦乐(22)“B班:周三下午6点” 弦乐(22)“B班:周三下午6点” array_search以前从未遇到过问题,但这让我抓狂,似乎无法理解这里发生了什么。似乎任何字符串搜索结果都是一样的。但如果我搜索一个整数,比如3,它会正确地提取“Id” 更新-整个多维数组 我发现了问题。。。但我不知道原因:对我来说,这是一个谜 问题是\u IGTestScore

其输出为:

_IGTestScore

如果我对$className和$student['''u IGClass1]进行var_转储,我会得到:

弦乐(22)“B班:周三下午6点”

弦乐(22)“B班:周三下午6点”

array_search以前从未遇到过问题,但这让我抓狂,似乎无法理解这里发生了什么。似乎任何字符串搜索结果都是一样的。但如果我搜索一个整数,比如3,它会正确地提取“Id”

更新-整个多维数组
我发现了问题。。。但我不知道原因:对我来说,这是一个谜

问题是
\u IGTestScore
作为整数:如果
\u IGTestScore
是整数,
array\u search()
返回
\u IGTestScore
(事实上,它返回任何搜索字符串的
\u IGTestScore
,即使它们不存在!),如果
\u IGTestScore
设置为
'0'
(字符串)或为正整数,
array\u search()
返回正确的值

是虫子吗

有人能解释一下吗

编辑:

显然,有一个解决方案:使用“strict”参数:

Array
(
    [0] => Array
        (
            [Groups] => 187,267
            [Birthday] => DateTime Object
                (
                    [date] => 1981-02-04 00:00:00.000000
                    [timezone_type] => 3
                    [timezone] => UTC
                )

            [_IGTestScore] => 0
            [Email] => blank@blank.com
            [_IGClass1] => Class B: Wednesday 6pm
            [_IGAttendedClass1] => DateTime Object
                (
                    [date] => 2016-02-17 00:00:00.000000
                    [timezone_type] => 3
                    [timezone] => UTC
                )

            [FirstName] => Joe
            [Id] => 3
            [LastName] => Schmoe
        )

)

但是。。。为什么“B类:星期三下午6点”==0?

数组中的
B类:星期三下午6点
值可能最后有一个空格,如下所示:
B类:星期三下午6点
。这可能就是问题所在。@Nordenheim-我展示了var_转储,以表明它们都是相同的。它对我来说是正确的(已测试)。确保其中一个子数组的格式没有错误?每个子数组的结果都相同?@fusion3k-我可以将指针更改为其他字符串值(如Joe,blank@blank.com)但结果是一样的。任何字符串元素(FirstName、Email等)都将返回为“_IGTestScore”。我可以单独访问元素fine,例如$student[''u IGClass1'],该值返回fine。此外,您必须
var\u dump($student[''u IGTestScore'])
,而不是
\u IGClass1
。。。ッStrict对我来说很管用,但我仍然很困惑,为什么它会不顾一切地这样做。
Array
(
    [0] => Array
        (
            [Groups] => 187,267
            [Birthday] => DateTime Object
                (
                    [date] => 1981-02-04 00:00:00.000000
                    [timezone_type] => 3
                    [timezone] => UTC
                )

            [_IGTestScore] => 0
            [Email] => blank@blank.com
            [_IGClass1] => Class B: Wednesday 6pm
            [_IGAttendedClass1] => DateTime Object
                (
                    [date] => 2016-02-17 00:00:00.000000
                    [timezone_type] => 3
                    [timezone] => UTC
                )

            [FirstName] => Joe
            [Id] => 3
            [LastName] => Schmoe
        )

)
array_search( $className, $student, True );