2017-05-26 76 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', 
), 
) 
相關問題