Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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 如何正确使用数组\u键\u_Php_Arrays_Array Push_Array Key Exists - Fatal编程技术网

Php 如何正确使用数组\u键\u

Php 如何正确使用数组\u键\u,php,arrays,array-push,array-key-exists,Php,Arrays,Array Push,Array Key Exists,为什么$array中的$KEY仍然被推送到$array 我正在努力防止重复键被推入$array中。因为$array是二维数组,$array2是1D数组,请使用下面的代码 $array = json_decode('[{"1234567":1368356071},{"7654321":1368356071}, etc, etc]'); $array2 = array(array(1234567 => time()), array(7654321 => time())); fore

为什么$array中的$KEY仍然被推送到$array


我正在努力防止重复键被推入$array中。

因为
$array
是二维数组,
$array2
是1D数组,请使用下面的代码

$array = json_decode('[{"1234567":1368356071},{"7654321":1368356071}, etc, etc]');
$array2 = array(array(1234567 => time()), array(7654321 => time()));
   foreach($array2 as $key){
      if(!array_key_exists(key($key),$array))
           array_push($array, $key);
   }

因为
$array
是二维数组,而
$array2
是1D数组,所以使用下面的代码

$array = json_decode('[{"1234567":1368356071},{"7654321":1368356071}, etc, etc]');
$array2 = array(array(1234567 => time()), array(7654321 => time()));
   foreach($array2 as $key){
      if(!array_key_exists(key($key),$array))
           array_push($array, $key);
   }
试试这个

你有三个问题

1) 您正在将数组解码为stdObject,它应该设置为true以将其返回到数组

2) 您需要将数组作为foreach循环($array2作为$key=>$val)

3) 在array\u key\u exists函数中作为$array[0]传递

1
2
试试这个

你有三个问题

1) 您正在将数组解码为stdObject,它应该设置为true以将其返回到数组

2) 您需要将数组作为foreach循环($array2作为$key=>$val)

3) 在array\u key\u exists函数中作为$array[0]传递

1
2

关键字
isset
比函数
array\u key\u存在的速度更快

如果不必从NULL中分辨未定义的,则应使用
isset

数组\密钥\存在:

  $array = json_decode('[{"1234567":1368356071}]', true);

$array2 = array(1234567 => time(), 7654321 => time());
//echo count($array);
foreach($array2 as $key => $val){


    if(!array_key_exists($key,$array[0]))
        array_push($array, $key);
}
echo count($array);
isset:

array_key_exists($key,$array);
在Ideone上测试:


为了防止重复键被推入$array,它使用以下代码:

isset($array[$key]);

关键字
isset
比函数
array\u key\u存在的速度更快

如果不必从NULL中分辨未定义的,则应使用
isset

数组\密钥\存在:

  $array = json_decode('[{"1234567":1368356071}]', true);

$array2 = array(1234567 => time(), 7654321 => time());
//echo count($array);
foreach($array2 as $key => $val){


    if(!array_key_exists($key,$array[0]))
        array_push($array, $key);
}
echo count($array);
isset:

array_key_exists($key,$array);
在Ideone上测试:


为了防止重复键被推入$array,它使用以下代码:

isset($array[$key]);


代码foreach中的错误($array2作为$key){replace foreach($array2作为$key=>$val){代码foreach中的错误($array2作为$key){replace foreach($array2作为$key=>$val){@YogeshSuthar array2 1D是怎么回事,不是和array一样但有两个键吗?@GameDevGuru是的array2有两个键,但有一个一维数组。@YogeshSuthar哦,好的,我明白了。我的代码出错了。array2也是2D@YogeshSuthar这很有效,但不是很好。如果我在数组1中有多个值呢?[{“1234567”:1368356071},{“7654321”:1368356071}]$array[0]只搜索第一个。@YogeshSuthar我正在努力防止重复的键被推入$array。@YogeshSuthar array2 1D是什么,它与array2 1D不是一样,但有两个键吗?@GameDevGuru是的array2有两个键,但有一个一维数组。@YogeshSuthar哦,好的,我明白了。我的代码出错了。array2也是2D@YogeshSuthar这很有效,但不是很好。如果我在数组1中有多个值怎么办?[{“1234567”:1368356071},{“7654321”:1368356071}]$array[0]只搜索第一个。@yogeshuthar我正在努力防止重复的键被推到$array中。..foreach($array2 as$key=>$val){似乎在推动索引而不是键。我正试图防止重复的键被推入$array..foreach($array2 as$key=>$val){似乎是在推索引而不是键。我正试图防止重复键被推到$array中。这难道不是只检查是否设置了索引吗?我需要在推之前搜索数组以查看是否已经存在键。我正试图防止重复键被推到$array中。不用说,你知道在其他答案的代码中,uld只需将array_key_exists替换为isset,并且您不需要使用array_push。array_push仅在一次推送多个项目时才需要。这不是仅检查是否设置了索引吗?在推送之前,我需要搜索数组以查看是否已经存在一个键。我正在尝试防止重复的键被获取推入$array..不用说,您只需将array_key_exists替换为isset,在其他答案的代码中..并且您不需要使用array_push。仅当您同时推入多个项目时,才需要array_push。