2017-06-01 16 views
0

Ich habe hier zwei Arrays.Überprüfen, ob Array-Wert in einem anderen Array vorhanden ist, wenn nicht, durch einen anderen Wert ersetzen

$myarray1= [{"date":"2017-04-18","count":"3"},{"date":"2017-04-19","count":"2"},{"date":"2017-04-20","count":"1"},{"date":"2017-04-24","count":"1"},{"date":"2017-04-25","count":"1"},{"date":"2017-05-02","count":"2"},{"date":"2017-05-03","count":"1"},{"date":"2017-05-04","count":"1"},{"date":"2017-05-09","count":"1"},{"date":"2017-05-10","count":"2"},{"date":"2017-05-11","count":"6"},{"date":"2017-05-12","count":"5"},{"date":"2017-05-17","count":"3"},{"date":"2017-05-19","count":"2"},{"date":"2017-05-30","count":"3"}] 

UND

$myarray2= [{"date":"2017-04-18"},{"date":"2017-04-19"},{"date":"2017-04-20"},{"date":"2017-04-21"},{"date":"2017-04-22"},{"date":"2017-04-23"},{"date":"2017-04-24"},{"date":"2017-04-25"},{"date":"2017-04-26"},{"date":"2017-04-27"},{"date":"2017-04-28"},{"date":"2017-04-29"},{"date":"2017-04-30"},{"date":"2017-05-01"},{"date":"2017-05-02"},{"date":"2017-05-03"},{"date":"2017-05-04"},{"date":"2017-05-05"},{"date":"2017-05-06"},{"date":"2017-05-07"},{"date":"2017-05-08"},{"date":"2017-05-09"},{"date":"2017-05-10"},{"date":"2017-05-11"},{"date":"2017-05-12"},{"date":"2017-05-13"},{"date":"2017-05-14"},{"date":"2017-05-15"},{"date":"2017-05-16"},{"date":"2017-05-17"},{"date":"2017-05-18"},{"date":"2017-05-19"},{"date":"2017-05-20"},{"date":"2017-05-21"},{"date":"2017-05-22"},{"date":"2017-05-23"},{"date":"2017-05-24"},{"date":"2017-05-25"},{"date":"2017-05-26"},{"date":"2017-05-27"},{"date":"2017-05-28"},{"date":"2017-05-29"},{"date":"2017-05-30"},{"date":"2017-05-31"},{"date":"2017-06-01"}] 

Wie würde ich prüfen, ob ein $myarray2 Wert im $myarray1 Array ist: Ich habe es json_encode() mit Echo?

Danke an alle.

+0

Verwenden Sie 'array_column' und' array_intersect' –

+0

Was ist Ihre erwartete Ausgabe? Ihr Titel weist darauf hin, dass Sie etwas ersetzen möchten. Bitte zeigen Sie, was Sie in Ihrem Ergebnis-Array wollen. – mickmackusa

+0

Meine erwartete Ausgabe wäre Werte, die nicht in $ myarray1 sind. – QueenElizabeth

Antwort

1

könnten Sie verwenden array_intersect

Beispiel:

<?php 
$array1 = array("a" => "green", "red", "blue"); 
$array2 = array("b" => "green", "yellow", "red"); 
$result = array_intersect($array1, $array2); 
print_r($result); 
?> 

für mehr Dokumentation hier lesen http://php.net/manual/en/function.array-intersect.php

1

Hier sind wir json_decodearray_column und array_intersect verwenden.

Try this code snippet here

<?php 
ini_set('display_errors', 1); 

$string1='[{"date":"2017-04-18","count":"3"},{"date":"2017-04-19","count":"2"},{"date":"2017-04-20","count":"1"},{"date":"2017-04-24","count":"1"},{"date":"2017-04-25","count":"1"},{"date":"2017-05-02","count":"2"},{"date":"2017-05-03","count":"1"},{"date":"2017-05-04","count":"1"},{"date":"2017-05-09","count":"1"},{"date":"2017-05-10","count":"2"},{"date":"2017-05-11","count":"6"},{"date":"2017-05-12","count":"5"},{"date":"2017-05-17","count":"3"},{"date":"2017-05-19","count":"2"},{"date":"2017-05-30","count":"3"}]'; 
$string2='[{"date":"2017-04-18"},{"date":"2017-04-19"},{"date":"2017-04-20"},{"date":"2017-04-21"},{"date":"2017-04-22"},{"date":"2017-04-23"},{"date":"2017-04-24"},{"date":"2017-04-25"},{"date":"2017-04-26"},{"date":"2017-04-27"},{"date":"2017-04-28"},{"date":"2017-04-29"},{"date":"2017-04-30"},{"date":"2017-05-01"},{"date":"2017-05-02"},{"date":"2017-05-03"},{"date":"2017-05-04"},{"date":"2017-05-05"},{"date":"2017-05-06"},{"date":"2017-05-07"},{"date":"2017-05-08"},{"date":"2017-05-09"},{"date":"2017-05-10"},{"date":"2017-05-11"},{"date":"2017-05-12"},{"date":"2017-05-13"},{"date":"2017-05-14"},{"date":"2017-05-15"},{"date":"2017-05-16"},{"date":"2017-05-17"},{"date":"2017-05-18"},{"date":"2017-05-19"},{"date":"2017-05-20"},{"date":"2017-05-21"},{"date":"2017-05-22"},{"date":"2017-05-23"},{"date":"2017-05-24"},{"date":"2017-05-25"},{"date":"2017-05-26"},{"date":"2017-05-27"},{"date":"2017-05-28"},{"date":"2017-05-29"},{"date":"2017-05-30"},{"date":"2017-05-31"},{"date":"2017-06-01"}]'; 

$array1=json_decode($string1,true); 
$array2=json_decode($string2,true); 

print_r(array_intersect(array_column($array1, "date"), array_column($array2,"date"))); 
1

Sie wollen nicht intersect(), möchten Sie diff():

Demo

var_export(array_diff(array_column($array2,'date'),array_column($array1,'date'))); 

Output (die nicht passenden Termine):

array (
    3 => '2017-04-21', 
    4 => '2017-04-22', 
    5 => '2017-04-23', 
    8 => '2017-04-26', 
    9 => '2017-04-27', 
    10 => '2017-04-28', 
    11 => '2017-04-29', 
    12 => '2017-04-30', 
    13 => '2017-05-01', 
    17 => '2017-05-05', 
    18 => '2017-05-06', 
    19 => '2017-05-07', 
    20 => '2017-05-08', 
    25 => '2017-05-13', 
    26 => '2017-05-14', 
    27 => '2017-05-15', 
    28 => '2017-05-16', 
    30 => '2017-05-18', 
    32 => '2017-05-20', 
    33 => '2017-05-21', 
    34 => '2017-05-22', 
    35 => '2017-05-23', 
    36 => '2017-05-24', 
    37 => '2017-05-25', 
    38 => '2017-05-26', 
    39 => '2017-05-27', 
    40 => '2017-05-28', 
    41 => '2017-05-29', 
    43 => '2017-05-31', 
    44 => '2017-06-01', 
) 
Verwandte Themen