У меня есть синтаксис 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
, а затем проверить их, но пока безуспешно. У кого-нибудь есть другая идея?
3 ответа
$array[] = array(
'value' => '2012-03-14T13:00:00',
'value2' => '2012-03-14T16:00:00', // <--- Error
'timezone' => 'Europe/Paris',
'timezone_db' => 'UTC',
'date_type' => 'date',
);
$array[] = array(
'value' => '2012-03-14T13:00:00a', // <--- Error
'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:00tt', // <--- Error
'timezone' => 'Europe/Paris',
'timezone_db' => 'UTC',
'date_type' => 'date11',
);
$errors = array();
for($i=0; $i < count($array)-1; $i++ )
$errors = array_merge( array_diff_assoc($array[$i], $array[$i+1]) );
var_dump($errors);
/* Output
* ------
* Array
* (
* [value] => 2012-03-14T13:00:00a
* [value2] => 2012-03-14T16:00:00
* [date_type] => date
* )
*/
$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";
Вывод: 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 */
}
}
Это даст
Ошибка в 0
Ошибка в 1
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.