PHP вывод цикла foreach в новый массив - PullRequest
1 голос
/ 28 марта 2010

Я знаю, что, возможно, упускаю что-то простое, но у меня есть цикл foreach, и я пытаюсь изменить значения первого массива и вывести новый массив с изменениями в качестве новых значений.

В основном я начинаю с массива: 0 => A: B 1 => B: C 2 => C: D

И я использую explode () для удаления букв 's и s, поэтому я хочу оставить массив: 0 => А 1 => B 2 => C

Часть моей функции explode () работает нормально, но я, похоже, получаю только одностроковые выходные данные. А, В и С.

Ответы [ 2 ]

2 голосов
/ 28 марта 2010

Похоже, вы хотите что-то вроде этого?

$initial = array('A:B', 'B:C', 'C:D');
$cleaned = array();
foreach( $initial as $data ) {
  $elements = explode(':', $data);
  $cleaned[] = $elements[0];
}
1 голос
/ 28 марта 2010

Если на массив не ссылаются, foreach работает с копией указанного массива, а не с самим массивом

$arr = array( 0 => 'A:B', 1 => 'B:C', 2 => 'C:D');
// foreach($arr as $val) will not work.
foreach($arr as &$val) { // prefix $val with & to make it a reference to actual array values and not just copy a copy.
    $temp = explode(':',$val);
    $val = $temp[0];
}
var_dump($arr);

Выход:

array(3) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "B"
  [2]=>
  &string(1) "C"
}
...