2017-02-13 4 views
1

У меня есть массив, который отображает его ключи и значения дважды. Ниже приведен пример способа отображения данных:Дублирующие значения массива во время цикла

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]' to '[1,1,3,3,5,5]'? –

+1

'$ row = mysqli_fetch_array ($ result, MYSQLI_NUM)' .... и тогда вам не нужно делать это 'array_values ​​()' call либо –

+1

@MarkBaker Работал как шарм. Пожалуйста, разместите его как ответ, чтобы я мог его принять. Если бы вы могли прояснить решение, было бы здорово. Спасибо! :) – SporeDev

ответ

2

По умолчанию mysqli_fetch_array() возвращает массив с ассоциативными (по имени столбца) и перечисляемыми ключами (по порядку столбцов) для каждого столбца строки. Вы можете указать, хотите ли вы просто ассоциативный массив или просто перечисляемый массив, используя флаги MYSQLI_ASSOC или MYSQLI_NUM соответственно в качестве второго аргумента функции.

В качестве альтернативы, вы можете использовать функцию mysqli_fetch_assoc() возвращать только ассоциативный массив, или mysqli_fetch_row() возвращать только нумерованный массив, или mysqli_fetch_object(), если вы хотите получить приключений и возвращает объект, где находится объект недвижимости общественности для каждого столбца

Смежные вопросы