如何将一个单个数组值检入另一个多值?

时间:2017-05-26 06:47:13

标签: php arrays laravel

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"
    ),
);

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

3 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

如果针不存在,我们使用array_search,然后我们在数组中添加它。

Try this code snippet here

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