Php 计数($nameArray)未返回正确的值
我有以下代码:Php 计数($nameArray)未返回正确的值,php,arrays,Php,Arrays,我有以下代码: $nameArray = array("Bob", "John", "Ben", "Mike"); for ($i = 0; $i < count($nameArray); $i++){ $name = $nameArray[$i]; $nameArray[$name] = strlen($nameArray[$i]); echo $nameArray[$i]."'s name is ".$nameArray[$name]." letters lon
$nameArray = array("Bob", "John", "Ben", "Mike");
for ($i = 0; $i < count($nameArray); $i++){
$name = $nameArray[$i];
$nameArray[$name] = strlen($nameArray[$i]);
echo $nameArray[$i]."'s name is ".$nameArray[$name]." letters long <br>";
}
$nameArray=array(“鲍勃”、“约翰”、“本”、“迈克”);
对于($i=0;$i”;
}
为什么
count($nameArray)
返回的是8而不是4?通过将新值推入循环中来更改数组的大小。这就是为什么通过将新值推入循环来更改循环中数组的大小。这就是为什么当您声明数组时,它将数值索引作为
Array ( [0] => Bob [1] => John [2] => Ben [3] => Mike )
之后,使用以下语句使用新索引推送新值:
$nameArray[$name] = strlen($nameArray[$i]);
它创建的数组如下所示:
Array ( [0] => Bob [1] => John [2] => Ben [3] => Mike [Bob] => 3 [John] => 4 [Ben] => 3 [Mike] => 4)
这就是为什么当您声明数组时,它会将count显示为8,此时它的数值索引为
Array ( [0] => Bob [1] => John [2] => Ben [3] => Mike )
之后,使用以下语句使用新索引推送新值:
$nameArray[$name] = strlen($nameArray[$i]);
它创建的数组如下所示:
Array ( [0] => Bob [1] => John [2] => Ben [3] => Mike [Bob] => 3 [John] => 4 [Ben] => 3 [Mike] => 4)
这就是为什么它显示计数为8的原因。创建新数组而不是使用相同的数组
$nameArray = array("Bob", "John", "Ben", "Mike");
$nameLength = array();
for ($i = 0; $i < count($nameArray); $i++){
$name = $nameArray[$i];
$nameLength[$name] = strlen($nameArray[$i]);
echo $nameArray[$i]."'s name is ".$nameLength[$name]." letters long <br>";
}
$nameArray=array(“鲍勃”、“约翰”、“本”、“迈克”);
$nameLength=array();
对于($i=0;$i”;
}
创建新数组,而不是使用相同的数组
$nameArray = array("Bob", "John", "Ben", "Mike");
$nameLength = array();
for ($i = 0; $i < count($nameArray); $i++){
$name = $nameArray[$i];
$nameLength[$name] = strlen($nameArray[$i]);
echo $nameArray[$i]."'s name is ".$nameLength[$name]." letters long <br>";
}
$nameArray=array(“鲍勃”、“约翰”、“本”、“迈克”);
$nameLength=array();
对于($i=0;$i”;
}
$nameArray[$name]=strlen($nameArray[$i])代码>
是数组长度加倍的原因。将元素长度作为新元素添加到数组中。所以它的长度增加了一倍
可能您需要一个新数组来存储它的长度
$nameLen[$name]=strlen($nameArray[$i])
$nameArray[$name]=strlen($nameArray[$i])代码>
是数组长度加倍的原因。将元素长度作为新元素添加到数组中。所以它的长度增加了一倍
可能您需要一个新数组来存储它的长度
$nameLen[$name]=strlen($nameArray[$i])代码>