2017-05-26 94 views
1

Hello Developer我正在尝试将一个单个数组检查为多个数组值,并且我的确切要求是一个数组的值应该在第二个数组的每个索引中检查,并在相同时替换,否则将其附加到新数组中。如何检查一个单一的数组值到另一个多个值?

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

$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

使用的foreach()==与===或操作 –

+0

显示您的预期了把 – JYoThI

回答

0

这里我们使用array_search如果needle不存在,那么我们在数组中添加。

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); 
+0

谢谢@Sahil古拉蒂。它解决了我的问题。 –

+0

@PawanDongol欢迎朋友...... :) –

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 
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', 
), 
) 
相关问题