2017-02-13 114 views
1

我有一個數組,顯示它的鍵和值兩次。下面是它顯示的數據的方式的例子:while循環中的重複數組值

Array ( 
[0] => 38 
[1] => 38 
[2] => 10 
[3] => 10 
[4] => B 
[5] => B 
[6] => 5 
[7] => 5 
[8] => 5 
[9] => 5 
[10] => 5 
[11] => 5 
[12] => 5 
[13] => 5 
[14] => 5 
[15] => 5 
[16] => 5 
[17] => 5 
[18] => 5 
[19] => 5 
) 

我試圖尋找一個解決方案上SO但我只找到針對每個案件。嘗試只選擇甚至鍵,但沒有設法做到這一點。 array_unique()在我的情況下不起作用,因爲我有可能在不同領域擁有相同的值。

可能是導致它顯示兩次的問題?

<?php 
include_once "connect.php"; 

$intrebare_02 = mysqli_real_escape_string($con, $_POST['intrebare_02']); 

    $i = 0; 
    $array_sum=[]; 
    while ($i < 10){ 
     $i++; 
     $sql = "SELECT * FROM parteneri WHERE nr_intrebare = '$i' AND varianta_raspuns = '$intrebare_02'"; 
     $result = mysqli_query($con, $sql); 

     $final_array = array(); 
if ($i % 2 == 0) 
     while ($row = mysqli_fetch_array($result)) 
     { 

     $final_array = array_values($row); 
      $array_sum = array_map(function() { 
       return array_sum(func_get_args()); 
      }, $array_sum, $final_array); 
     } 
} 
print_r($final_array); 

讓我知道你是否需要進一步澄清。

+0

你的意思是你想把'[1,3,5]'改成'[1,1,3,3,5,5]'? –

+1

'$ row = mysqli_fetch_array($ result,MYSQLI_NUM)'....然後你不需要做'array_values()'調用 –

+1

@MarkBaker像魅力一樣工作。請張貼它作爲答案,以便我可以接受它。如果你能澄清這個解決方案,那就太好了。謝謝! :) – SporeDev

回答

2

默認情況下,mysqli_fetch_array()爲行的每一列返回一個數組,其中包含關聯(按列名)和枚舉鍵(按列的順序)。您可以分別使用MYSQLI_ASSOCMYSQLI_NUM標誌作爲函數的第二個參數來指定僅需要關聯數組還是枚舉數組。

或者,您可以使用mysqli_fetch_assoc()函數返回只是一個關聯數組,或mysqli_fetch_row(),如果你想冒險並返回一個對象只返回一個枚舉陣列,或mysqli_fetch_object()其中對於每一列公共對象屬性