Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改for循环中的元素_Php - Fatal编程技术网

Php 更改for循环中的元素

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

在这里,当我不使用unset函数和print_r$color时,它会输出黄色。我不明白为什么它只输出黄色


这是因为您使用$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);