Hello Developer我试图将一个单个数组检查成多个数组值,我的确切要求是应该在第二个数组的每个索引中检查一个数组的值,如果相同,则将其替换为新数组。
My Two数组是这样的: - 一个阵列: -
$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"
),
);
我是从昨天开始尝试但是没有成功,所以请帮我解决这个问题。
答案 0 :(得分:1)
您可以使用array_search
和array_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
答案 1 :(得分:0)
如果针不存在,我们使用array_search
,然后我们在数组中添加它。
<?php
ini_set('display_errors', 1);
$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"
),
);
if(array_search($array1, $array2)===false)
{
$array2[]=$array1;
}
print_r($array2);
答案 2 :(得分:0)
输入:
$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_search()
没有意义。 in_array()
专门用于返回真假 - 所以请使用它!
var_export($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',
),
)