Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Compare - Fatal编程技术网

Php 比较不同数组中的不同项

Php 比较不同数组中的不同项,php,arrays,compare,Php,Arrays,Compare,我有一个foreach语法,它生成以下结果: array 0 => array 'value' => string '2012-05-09T12:00:00' (length=19) 'value2' => string '2012-05-09T15:00:00' (length=19) 'timezone' => string 'Europe/Paris' (length=12) 'timezone_db'

我有一个
foreach
语法,它生成以下结果:

array
  0 => 
    array
      'value' => string '2012-05-09T12:00:00' (length=19)
      'value2' => string '2012-05-09T15:00:00' (length=19)
      'timezone' => string 'Europe/Paris' (length=12)
      'timezone_db' => string 'UTC' (length=3)
      'date_type' => string 'date' (length=4)
  1 => 
    array
      'value' => string '2012-03-14T13:00:00' (length=19)
      'value2' => string '2012-03-14T16:00:00' (length=19)
      'timezone' => string 'Europe/Paris' (length=12)
      'timezone_db' => string 'UTC' (length=3)
      'date_type' => string 'date' (length=4)
  2 => 
    array
      ...
array
  0 => 
    array
      'value' => string '2012-02-08T13:00:00' (length=19)
      'value2' => string '2012-02-08T16:00:00' (length=19)
      'timezone' => string 'Europe/Paris' (length=12)
      'timezone_db' => string 'UTC' (length=3)
      'date_type' => string 'date' (length=4)
  1 => 
    array
      'value' => string '2012-03-14T13:00:00' (length=19)
      'value2' => string '2012-03-14T16:00:00' (length=19)
      'timezone' => string 'Europe/Paris' (length=12)
      'timezone_db' => string 'UTC' (length=3)
      'date_type' => string 'date' (length=4)
  2 => 
    array
      ...
表示更多的代码,所有代码都具有相同的结构

下面是
php
代码:

foreach ($result as $term) {
   $node = node_load($term->nid);
   $dates = $node->field_date['und'];
   var_dump($dates);
}
目标是比较结果并检查它们是否存在任何不平等。所以我的目标是一个脚本,它允许我比较第一个数组中的
$dates[0]['value']]
,和第二个数组中的
$dates[0]['value']

我想用所有
0
项或所有
1
项组成新数组,然后检查它们,但到目前为止运气不好。有人有其他想法吗?

$array=array();
$array = array();

$array[] = array(
    'value'       => '2012-03-14T13:00:00',
    'value2'      => '2012-03-14T16:00:00',
    'timezone'    => 'Europe/Paris',
    'timezone_db' => 'UTC',
    'date_type'   => 'date',
);
$array[] = array(
    'value'       => '2012-03-14T13:00:00',
    'value2'      => '2012-03-14T16:00:00dddd',      // <--- Error is here
    'timezone'    => 'Europe/Paris',
    'timezone_db' => 'UTC',
    'date_type'   => 'date',
);
$array[] = array(
    'value'       => '2012-03-14T13:00:00',
    'value2'      => '2012-03-14T16:00:00',
    'timezone'    => 'Europe/Paris',
    'timezone_db' => 'UTC',
    'date_type'   => 'date',
);

if( count($array) > 1 )
{
    $error = false;
    $keyCount = count($array);

    for($i=0; $i < $keyCount-1; $i++)
    {
        foreach( $array[$i] as $key=>$val )
        {
            if( $array[$i+1][$key] != $val ) 
            {
                $error = $key;
                break;
            }
        }
    }
}

if( $error )
    echo "Error key = " . $error;
else
    echo "No errors";
$array[]=数组( “值”=>“2012-03-14T13:00:00”, “值2”=>“2012-03-14T16:00:00”, “时区”=>“欧洲/巴黎”, “时区”=>“UTC”, “日期类型”=>“日期”, ); $array[]=数组( “值”=>“2012-03-14T13:00:00”, “value2”=>“2012-03-14T16:00:00dddd”、/“欧洲/巴黎”, “时区”=>“UTC”, “日期类型”=>“日期”, ); $array[]=数组( “值”=>“2012-03-14T13:00:00”, “值2”=>“2012-03-14T16:00:00”, “时区”=>“欧洲/巴黎”, “时区”=>“UTC”, “日期类型”=>“日期”, ); 如果(计数($array)>1) { $error=false; $keyCount=count($array); 对于($i=0;$i<$keyCount-1;$i++) { foreach($array[$i]作为$key=>$val) { 如果($array[$i+1][$key]!=$val) { $error=$key; 打破 } } } } 如果($error) echo“Error key=”$错误; 其他的 回应“没有错误”;


输出:
Error key=value2

编辑:更改以反映对问题的新理解。

$array=array();
$array[]=数组(
“值”=>“2012-03-14T13:00:00”,
“值2”=>“2012-03-14T16:00:00”,
“时区”=>“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
$array[]=数组(
“值”=>“2012-03-14T13:00:00”,
“value2”=>“2012-03-14T16:00:00dddd”、/“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
$array[]=数组(
“值”=>“2012-03-14T13:00:00”,
“值2”=>“2012-03-14T16:00:00”,
“时区”=>“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
如果(计数($array)>1)
{
$error=false;
$keyCount=count($array);
对于($i=0;$i<$keyCount-1;$i++)
{
foreach($array[$i]作为$key=>$val)
{
如果($array[$i+1][$key]!=$val)
{
$error=$key;
打破
}
}
}
}
如果($error)
echo“Error key=”$错误;
其他的
回应“没有错误”;


输出:
Error key=value2

编辑:更改以反映对问题的新理解。

我认为这是一种方法

$array1 = array('marko','aca','milos');
$array2 = array('nemanja','marko','milos');
for($i=0;$i<count($array2);$i++)//count any array
{
if($array1[$i]!=$array2[$i])
{
    echo "Error in ".$i." <br/>";/*it will show you a number of part of array wich don't match */
}
}
$array1=数组('marko','aca','milos');
$array2=数组('nemanja','marko','milos');
对于($i=0;$i我认为这是一种方法

$array1 = array('marko','aca','milos');
$array2 = array('nemanja','marko','milos');
for($i=0;$i<count($array2);$i++)//count any array
{
if($array1[$i]!=$array2[$i])
{
    echo "Error in ".$i." <br/>";/*it will show you a number of part of array wich don't match */
}
}
$array1=数组('marko','aca','milos');
$array2=数组('nemanja','marko','milos');
对于($i=0;$i
$array[]=array(
“值”=>“2012-03-14T13:00:00”,
“value2”=>“2012-03-14T16:00:00”、/“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
$array[]=数组(
“值”=>“2012-03-14T13:00:00a”、/“2012-03-14T16:00:00”,
“时区”=>“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
$array[]=数组(
“值”=>“2012-03-14T13:00:00”,
“value2”=>“2012-03-14T16:00:00tt”、/“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期11”,
);
$errors=array();
对于($i=0;$i2012-03-14T13:00:00a
*[value2]=>2012-03-14T16:00:00
*[日期类型]=>日期
* )
*/
$array[]=array(
“值”=>“2012-03-14T13:00:00”,
“value2”=>“2012-03-14T16:00:00”、/“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
$array[]=数组(
“值”=>“2012-03-14T13:00:00a”、/“2012-03-14T16:00:00”,
“时区”=>“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期”,
);
$array[]=数组(
“值”=>“2012-03-14T13:00:00”,
“value2”=>“2012-03-14T16:00:00tt”、/“欧洲/巴黎”,
“时区”=>“UTC”,
“日期类型”=>“日期11”,
);
$errors=array();
对于($i=0;$i2012-03-14T13:00:00a
*[value2]=>2012-03-14T16:00:00
*[日期类型]=>日期
* )
*/

谢谢!但我有一个未定义的数组数…所以可能有一个,但它们可能是6个中的5个…你必须有一个嵌套的foreach循环,我错过了这一点。但是创建一个新数组,然后通过foreach运行它会更有效。是的,这是我不确定的事情,因此问题:)实际上,如果您将所有转储放入一个数组中,那么您可以再次嵌套它,并运行if(count($array[0])==1)break;哇,这是很多信息和很少的单词……您可以更新您的答案吗?:)谢谢!但我有一个未定义的数组数。。。所以可能有一个,但它们可能是6个中的5个…你必须有一个嵌套的foreach循环,我错过了这一点。但是创建一个新数组,然后通过foreach运行它会更有效。是的,这是我不确定的事情,因此问题是:)事实上,如果你把所有转储放在一个数组中,那么你可以再次嵌套它,