Yeni bir diziye foreach döngüsü PHP çıktı

2 Cevap php

Ben muhtemelen kolay bir şey eksik biliyorum, ama ben bir foreach döngü var ve ben yeni değerler olarak değişiklikler içeren yeni bir dizi ilk dizinin değerlerini değiştirmek için çalışıyor, ve çıkış ediyorum.

Basically I'm starting with an array: 0 => A:B 1 => B:C 2 => C:D

And I'm using explode() to strip out the :'s and second letters, so I want to be left with an array: 0 => A 1 => B 2 => C

Benim işlevi) bölümü gayet iyi çalışıyor (patlayabilir, ama sadece tek bir dize çıkışları almak gibi. A, B, ve C

2 Cevap

Eğer böyle bir şey istiyor gibi geliyor?

$initial = array('A:B', 'B:C', 'C:D');
$cleaned = array();
foreach( $initial as $data ) {
  $elements = explode(':', $data);
  $cleaned[] = $elements[0];
}

Dizi başvurulan olmadıkça, foreach bir copy Belirtilen dizi değil dizinin kendisi üzerinde çalışır

$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);

Çıktı:

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