如何将一个数组值签入另一个多个值



你好开发人员我正在尝试将一个数组签入多个数组值,我的确切要求是一个数组的值应该签入第二个数组的每个索引,如果相同,则替换,否则将其附加到新数组中。

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

$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_searcharray_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

在这里我们使用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);

输入:

$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',
  ),
)

相关内容

最新更新