我知道我可能遗漏了一些简单的东西,但是我有一个 foreach 循环,并且我正在尝试修改第一个数组的值,并将修改后的新数组作为新值输出。
基本上我从一个数组开始: 0 => A:B 1 => B:C 2 => C:D
我正在使用explode()去除:的和第二个字母,所以我想留下一个数组:0 => A 1 => B 2 => C
我的函数的 explode() 部分工作正常,但我似乎只得到单个字符串输出。A、B 和 C。
听起来你想要这样的东西?
$initial = array('A:B', 'B:C', 'C:D');
$cleaned = array();
foreach( $initial as $data ) {
$elements = explode(':', $data);
$cleaned[] = $elements[0];
}
除非引用了数组,否则 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"
}