2012-02-03 2 views
0

У меня есть этот код, который выдает что-то вроде:построить массив многомерный из результатов запроса

Array ( 
[0] => 15 
[1] => 13 
[2] => 16 
[3] => 16 

[4] => 10 
[5] => 10 
[6] => 13 
[7] => 13 
)  

Но, я хочу эту структуру:

Array ( 
[0] => Array ([0] => 15, [1] => 13, [2] => 16, [3] => 16) 
[0] => Array ([0] => 10, [1] => 10, [2] => 13, [3] => 13) 
     ) 

Это не решить: $score[] = array($score_bd);. Есть идеи ?

код PHP

$i =0; 
     foreach ($arr_user_apply as $val) { 
      $new_val = array($val); 
      $arr[$i] = array_merge($str, $new_arr_tags_ids, $new_val, $new_id_oferta); 

      $sql = $db -> prepare(" 
       query 
       " 
      ); 

      call_user_func_array(array($sql, "bind_param"), $arr[$i]); 

      $sql -> execute(); 
      $sql -> bind_result($score_bd); 

      while ($sql -> fetch()) { 
       $score[] = $score_bd; 
      }; 

      $i++; 
     } 
+0

Я пытался, но я не могу понять, какие части исходного массива вы хотите разделить на несколько массивов? – rdlowrey

+0

Я могу помочь, пожалуйста, объясните структуру более точно w.r.t i/p –

+0

@rdlowrey проблема в том, что на данный момент с кодом выше всегда есть один единственный массив. И мне нужны многомерные массивы в зависимости от количества циклов foreach. Подобно [0] [0], [1] [0], [2] [0] и т. Д. – anvd

ответ

0

я не уверен, если вопрос ясен, но это работает должным образом мне

  $score = array(); 
      while ($sql -> fetch()) { 
       $score[] = $score_bd; 
      }; 

      $new_score[] = array($score); 


Array ( 
[0] => Array ([0] => Array ([0] => 15 [1] => 13 [2] => 16)) 
[1] => Array ([0] => Array ([0] => 10 [1] => 13 [2] => 6)) 
) 
0

Если вы просто пытаетесь добавить еще одно измерение к вашему первому массиву, установив значение ключа ключа в новый массив что-то подобное может работать:

$firstArray = Array (0 => 15, 1 => 15, 2 => 13, 3 => 13, 4 => 16, 5 => 16, 6 => 10, 7 => 10, 8 => 13, 9 => 13, 10 => 6, 11 => 6); 
$newArray = Array(); 
foreach($firstArray as $key => $value) 
{ 
    $newArray[] = Array($key => Array($value)); 
} 
echo "<pre>"; 
print_r($newArray); 
echo "</pre>"; 

EDIT:

если это один размер слишком глубоко, то просто попробуйте это:

$firstArray = Array (0 => 15, 1 => 15, 2 => 13, 3 => 13, 4 => 16, 5 => 16, 6 => 10, 7 => 10, 8 => 13, 9 => 13, 10 => 6, 11 => 6); 
$newArray = Array(); 
foreach($firstArray as $key => $value) 
{ 
    $newArray[$key] = Array($value); 
} 
echo "<pre>"; 
print_r($newArray); 
echo "</pre>"; 
+0

Пожалуйста , см. редактирование. – anvd

+0

, так что вам нужно разделить массив на каждую четвертую пару ключ/вал? Если это так, просто бросьте в модуле в цикл и переходите к следующей паре ключ/вал после каждой четвертой итерации цикла –

0
$arr = array (0 => 15 ,1 => 15, 2 => 13, 3 => 13 ,4 => 16 ,5 => 16 ,6 => 10, 7 => 10); 
foreach($arr as $key=>$value){ 
    $new_arr[$key][0] = $value; 
} 
Смежные вопросы