Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 计数($nameArray)未返回正确的值_Php_Arrays - Fatal编程技术网

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])