Php 更改for循环中的元素
在这里,当我不使用unset函数和print_r$color时,它会输出黄色。我不明白为什么它只输出黄色Php 更改for循环中的元素,php,Php,在这里,当我不使用unset函数和print_r$color时,它会输出黄色。我不明白为什么它只输出黄色 这是因为您使用$color作为变量。您应该将$color定义为数组,并将颜色值存储在其中 <?php $colors = array('red', 'blue', 'green', 'yellow'); $colorArr = array(); foreach ($colors as $color) { if($color=='yellow'){ cont
这是因为您使用$color作为变量。您应该将$color定义为数组,并将颜色值存储在其中
<?php
$colors = array('red', 'blue', 'green', 'yellow');
$colorArr = array();
foreach ($colors as $color) {
if($color=='yellow'){
continue;
}
$colorArr[] = strtoupper($color);
}
//unset($color[3]);
echo '<pre>';
print_r($colorArr);
echo '</pre>';
?>
输出:
unset($colors[3]);
取消设置$color而不是条目$colors[3] 如果需要取消设置黄色条目,则
unset($colors);
否则,如果要取消设置所有数组内容,则
foreach ($colors as &$color) {
$color = strtoupper($color);
}
print_r($colors);
在foreach循环完成时,$color包含最后一个元素数组,然后改为大写,即它包含黄色。如果您使用print\r打印其内容,除非您已经取消设置,否则它将输出黄色 你想做什么?如果要将数组的每个元素更改为大写,则需要使用以下foreach循环:
的可能重复项未清除您的问题定义您需要哪种类型的输出使用$colors=array_map'strtoupper',$colors;它会工作的。不需要使用不必要的变量使用简单的$color[]它也工作。Oaky,@BhargavChudasama谢谢,我已经更新了我的答案。
unset($colors[3]);
unset($colors);
foreach ($colors as &$color) {
$color = strtoupper($color);
}
print_r($colors);