二维数组的数组搜索警告

泰特兰尼什(Tetlanesh)

我看过一些有关搜索数组的主题(可能不是全部),但似乎对我没有用。

我对数组不是很好,这可能是我问题的根源。

我正在从看起来像这样的数据动态创建数组:

姓名| 时间(仅带小时的日期)| Some-Other-Columns(此时我不在乎其他列,仅关心前两列)-以下仅是一个示例,数据看起来或多或少像这样:

Name1 | 05-01-01 04| other values
Name1 | 14-02-03 02| other values
Name1 | 14-02-03 02| other values
Name1 | 14-02-03 03| other values
Name2 | 13-09-09 07| other values
NameX...

如您所见,“名称+时间”的值并不唯一,这是问题的核心。对于“原因”,我需要这种方式。我可以为此步骤使用单独的查询来获取单独的不同值-但我想用自己的知识来解决它,并在此过程中学习。

因此,当我逐行处理数据时,我会调用:$ member_array [$ name] [] = $ time;

结果,我得到:

Array
(
[Name1] => Array
    (
        [0] => 14-04-26 17
        [1] => 14-04-26 17
    )

[Name2] => Array
    (
        [0] => 14-05-01 18
        [1] => 14-05-01 19
        [2] => 14-05-02 00
        [3] => 14-05-02 00
        [4] => 14-05-03 09
        [5] => 14-05-03 13
        [6] => 14-05-03 15
        [7] => 14-05-03 15
    )

我注意到值重复出现,所以我添加了数组搜索来检查$ member_array [$ name]数组中是否存在重复值:

if(array_search($time,$member_array[$name])===FALSE)
    {
    $member_array[$name][] = $time;
    }
}

它实际上有效,但是随后我得到了:

警告:array_search()[function.array-search]:第43行的/home/bud-net/ftp/praca_dyplomowa/ale/members_time.php中第二个参数的数据类型错误

警告:array_search()[function.array-search]:第43行的/home/bud-net/ftp/praca_dyplomowa/ale/members_time.php中第二个参数的数据类型错误

Array
(
[Name1] => Array
    (
        [0] => 14-04-26 17
    )

[Name2] => Array
    (
        [0] => 14-05-01 18
        [1] => 14-05-01 19
        [2] => 14-05-02 00
        [3] => 14-05-03 09
        [4] => 14-05-03 13
        [5] => 14-05-03 15
    )

)

因此,我假设当我第一次调用搜索一个新名称时(在将第一个值分配给$ member_array [Name1]并随后分配给$ member_array [Name2]之前),它还不是Array,因此PHP发出警告。现在,您可以看到结果是正确的-所有重复的值都未添加到Array中,但是我试图摆脱警告。我应该如何初始化Array变量以摆脱它?

模糊树

您是对的,在第一个调用期间该数组不存在。因此,您必须检查数组是否存在,如果不存在则创建它。

if(!isset($member_array[$name])) { //if the array doesn't exist create it
    $member_array[$name] = array($time);
}
elseif(array_search($time,$member_array[$name])===FALSE) { //if the array does exist search it
        $member_array[$name][] = $time;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章