Php 如何将一个数组值检查为另一个多值?

Php 如何将一个数组值检查为另一个多值?,php,arrays,laravel,Php,Arrays,Laravel,开发者您好,我正在尝试将一个数组检查为多个数组值,我的确切要求是,一个数组的值应该在第二个数组的每个索引中检查,如果相同,则替换,否则将其附加到新数组中 我的两个阵列是这样的:- 一个阵列:- $array1 = array( "extension_date" => "2017-05-19", "extended_date" => "2017-05-27" ); 第二个阵列:- $array2 = array( 0 => array(

开发者您好,我正在尝试将一个数组检查为多个数组值,我的确切要求是,一个数组的值应该在第二个数组的每个索引中检查,如果相同,则替换,否则将其附加到新数组中

我的两个阵列是这样的:- 一个阵列:-

$array1 = array(
    "extension_date" => "2017-05-19",
    "extended_date" => "2017-05-27"
);
第二个阵列:-

$array2 = array(
    0 => array(
        "extension_date" => "2017-05-19",
        "extended_date" => "2017-05-27"
    ),
    1 => array(
        "extension_date" => "2017-05-31",
        "extended_date" => "2017-05-31"
    ),
);

我从昨天开始尝试,但没有成功,所以请帮助我解决这个问题。

这里我们使用
数组搜索
如果针不存在,那么我们将其添加到数组中


您可以使用
array\u search
array\u push
。如果在主数组中找到搜索数组,则不需要替换,因为它是完全相同的东西

$search = [
    "extension_date" => "2017-05-19",
    "extended_date" => "2017-05-27"
];

$data = [
    [
        "extension_date" => "2017-05-19",
        "extended_date" => "2017-05-27"
    ],
    [
        "extension_date" => "2017-05-31",
        "extended_date" => "2017-05-31"
    ]
];

if (array_search($search, $data) === false) {
    array_push($data, $search);
}

// $data contains $search if it's missing
投入:

$array1 = array(
    "extension_date" => "2017-05-19",
    "extended_date" => "2017-05-27"
);
$array2 = array(
    array(
        "extension_date" => "2017-05-19",
        "extended_date" => "2017-05-27"
    ),
    array(
        "extension_date" => "2017-05-31",
        "extended_date" => "2017-05-31"
    ),
);
方法:

if(!in_array($array1,$array2)){
    $array2[]=$array1;
}
因为您只是检查子数组是否存在,而不关心它的键,所以使用
array\u search()
是没有意义的
in_array()
是专门为返回true-false而设计的,所以请使用它

var\u导出($array2)
输出:

array (
  0 => 
  array (
    'extension_date' => '2017-05-19',
    'extended_date' => '2017-05-27',
  ),
  1 => 
  array (
    'extension_date' => '2017-05-31',
    'extended_date' => '2017-05-31',
  ),
)

将foreach()与==或===运算符一起使用显示预期输出
array (
  0 => 
  array (
    'extension_date' => '2017-05-19',
    'extended_date' => '2017-05-27',
  ),
  1 => 
  array (
    'extension_date' => '2017-05-31',
    'extended_date' => '2017-05-31',
  ),
)