2016-11-11 70 views
0

我有一個問題給你。 我的PHP代碼由下面的這些數組組成,我的意圖是將它們合併爲一個,正如您在主題底部所見。這些數組分爲2個不同的變量:$ array1和$ array2。使用值的數組檢查密鑰的數組並將其設置爲值

Array ($array1) 
(
    [0] => 2016-11-11 
    [1] => 2016-11-10 
    [2] => 2016-11-09 
    [3] => 2016-11-08 
    [4] => 2016-11-07 
    [5] => 2016-11-06 
    [6] => 2016-11-05 
) 
1 
Array ($array2) 
(
    [2016-11-11] => 0 
    [2016-11-10] => 0 
    [2016-11-08] => 0 
    [2016-11-07] => 0 
    [2016-11-06] => 0 
) 
1 

而這正是我希望這一計劃將做:

Array 
(
    [2016-11-11] => 0, 
    [2016-11-10] => 0, 
    [2016-11-09] => NULL, 
    [2016-11-08] => 0, 
    [2016-11-07] => 0, 
    [2016-11-06] => 0, 
    [2016-11-05] => NULL 
) 
1 

如何設置我的代碼,以便它返回我前一陣?我怎麼解決這個問題?誰能幫我?

我想:

$array1 = array( 
    "2016-11-11", 
    "2016-11-10", 
    "2016-11-09", 
    "2016-11-08", 
    "2016-11-07", 
    "2016-11-06", 
    "2016-11-05" 
); 
$array2 = array(); 
while($row1 = $result1->fetch_assoc()) 
{ 
    $array2[$row1["datesend"]] = $row1["error"]; 
} 
+2

你有沒有嘗試什麼?或者您希望我們爲您編寫代碼? –

+0

您的編輯不是您嘗試的,而是您如何構建陣列。 – JazZ

回答

1

該代碼會爲你工作:

$array1 = array('2016-11-11','2016-11-10','2016-11-09','2016-11-08','2016-11-07','2016-11-06','2016-11-05'); 
$array2 = array('2016-11-11' => 0,'2016-11-10' => 0,'2016-11-08' => 0,'2016-11-07' => 0,'2016-11-06' => 0); 

$result = array(); 
foreach($array1 as $a){ 
    if(isset($array2[$a])) 
     $result[$a] = $array2[$a]; 
    else 
     $result[$a] = NULL; 
} 
echo '<pre>'; 
var_dump($result); 
echo '</pre>' 

Outpur是:

array(7) { 
    ["2016-11-11"]=> 
    int(0) 
    ["2016-11-10"]=> 
    int(0) 
    ["2016-11-09"]=> 
    NULL 
    ["2016-11-08"]=> 
    int(0) 
    ["2016-11-07"]=> 
    int(0) 
    ["2016-11-06"]=> 
    int(0) 
    ["2016-11-05"]=> 
    NULL 
} 

我希望它能幫助

+0

非常感謝。作品!只有一個問題....如何選擇值是否爲NULL?我試圖與此代碼,但沒有成功: '的foreach($結果作爲$密鑰=> $值){' \t'如果($值> 0)' '{' \t \t'回聲「在errore 「;' \t'} ELSEIF($值== 0)' \t''{ \t \t'回聲 」 TUTTO行「 ;' \t'}' \t'ELSEIF($值== 「N/d」)' \t''{ \t \t'echo「​​」;' \t'}' '}' –

+0

use:'elseif($ value === NULL)'匹配NULL值。沒問題。快樂編碼! – Learner