2013-09-18 6 views
1

см.прикрепленную пример, который я использую, чтобы построить мой массивПереместить значение следующего элемента массива

foreach($something AS $key => $row) 
{ 

    $output[] = array("name"=>$row["name"], "points"=>$row["points"]); 

} 

print_r($output); 

Вот вывод:

Array 
(
    [0] => Array 
     (
      [name] => Mark 
      [points] => 1   
     ) 

    [1] => Array 
     (
      [name] => Sara 
      [points] => 2 
     ) 

    [2] => Array 
     (
      [name] => Jack 
      [points] => 3  
     ) 

) 

Что я пытаюсь сделать, это движущееся $ грести [ «точки»] к следующему элементу массива, чтобы получить этот результат:

Array 
(
    [0] => Array 
     (
      [name] => Mark 
      [points] =>   
     ) 

    [1] => Array 
     (
      [name] => Sara 
      [points] => 1 
     ) 

    [2] => Array 
     (
      [name] => Jack 
      [points] => 2  
     ) 

) 

Я не волнует, если re некоторые потери данных, или если мой [указывает] => 3 идет в новом массиве. Мне просто нужно программно переместить $ row ["points"] всегда к следующему элементу. Я играю с next() Функция без успеха, а также с $ key + 1, который, я уверен, я не могу использовать для достижения результата.

Возможно ли сделать это сверху, пока я строю массив или я вынужден переместить элемент позже с помощью отдельной функции? Другими словами, что бы вы сделали?

ответ

0

Попробуйте, если это поможет:

foreach($something AS $key => $row) 
{ 

    $output[$key]['name']  = $row["name"]; 
    $output[$key+1]['points'] = $row["points"]; 
} 

print_r($output); 
+0

Что за черт ... я теряю время. Спасибо, Нильз. – user1274113

1
Try This: 
$output = array(); 
$something = array(
    '0' => array(
     'name' => 'Mark', 
     'points' => 1, 
    ), 
    '1' => array(
     'name' => 'Sara', 
     'points' => 2, 
    ), 
    '2' => array(
     'name' => 'Jack', 
     'points' => 3, 
    ) 
); 
$point = ''; 
foreach($something AS $key => $row) 
{ 
    $output[$key] = array("name"=>$row["name"], "points"=>$point); 
    $point = $row['points']; 
} 

echo '<pre>'; 
print_r($output); 
0

Использование:

foreach($array as $key => $each) 
{ 
    $array[0]['points'] = ""; 
    $array[$key]['name'] = $each["name"]; 
    if(isset($array[$key+1])) $array[$key+1]['points'] = $each["points"]; 
} 

print_r($array); 
Смежные вопросы