我正在尝试创建一个包含1
到20,000
之间所有奇数的数组。我使用末尾的var_dump()
显示数组值而不使用循环。
出于某种原因,它无法解决。
到目前为止,这是我的代码:
$array_variable = array();
for($i=1; $i<=20000; $i++){
if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
print_r($array_variable[$i]); // if odd, echo it out and then echo newline for better readability;
}
}
var_dump($array_variable);
答案 0 :(得分:9)
您需要先将值推送到数组:
$array_variable = array();
for($i=1; $i<=20000; $i++){
if($i%2 == 1){
$array_variable[] = $i;// or array_push($array_variable, $i);
}
}
var_dump($array_variable);
否则你的数组会保持空白。
答案 1 :(得分:5)
这导致很多未定义的索引,因为您没有向$array_variable
添加任何内容。
将代码更改为:
$array_variable = array();
for($i=1; $i<=20000; $i++){
if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
$array_variable[] = $i; // $array_variable[] means adding something to the array
}
}
var_dump($array_variable); //dump all odd numbers
为了更好的数组可读性,您可以使用:
echo "<pre>";
print_r($array_variable);
echo "</pre>";
答案 2 :(得分:0)
您的$ array_variable为空,因为您从不向其添加任何元素。试试这个:
$array_variable = range(1, 20000, 2);
答案 3 :(得分:0)
$ array_variable = array();
array_origin = [1,2].concat(array_element);
array_cloned = array_origin.map(function(elem) { return elem; }); // This is not a deep copy!
答案 4 :(得分:0)
您正在尝试打印由于数组为空而不存在的元素。 如果你坚持使用数组使用这个代码,你会注意到你为数组元素赋值:(如果你想在浏览器的新行上显示它,请使用echo注释掉):(如果对更多内容感兴趣: what is the difference between echo and print_r
<?php
$array_variable = array();
for($i=1; $i<=20000; $i++){
$array_variable[$i]=$i;//assignment
if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
print_r($array_variable[$i]); // if odd, echo it out and then echo newline for better readability;
//echo $array_variable[$i].'<br>';
}
}
var_dump($array_variable);
?>