抓取foreach中数组值的序号

时间:2012-05-13 09:06:35

标签: php arrays foreach count

您好,

我想在foreach循环中获取数组键的序号。

实施例

<?php
$array = array("id" => 2, "username" => "foobar");
foreach($array as $value){
$array_key = search_array($value, $array);
//find the ordinal number of $array_key from $array here.
echo $value;
}

count返回数组中数组键的全部数量,我需要获取数组键的序号。 我希望你们明白我的要求。

4 个答案:

答案 0 :(得分:2)

让另一个变量在每次迭代后增加值。

答案 1 :(得分:2)

据我所知,如果一个条目有一个字符串键,它在数组中没有序号位置。来自http://php.net/manual/en/language.types.array.php

  

PHP中的数组实际上是一个有序的映射。映射是将值与键关联的类型。此类型针对多种不同用途进行了优化;它可以被视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。

有序地图不会在现有的字符串键上分配序号键。

你能做什么,获得一个伪序键是增加一个变量。

$i=0;

foreach( $array as $key => $value ) {
    echo $i.':'.$key.':'.$value;
    $i++;
}

将回显数组中的每个序号键,键和值。

答案 2 :(得分:0)

您可以使用current功能,如下所示:

foreach($array as $value){
$array_key = search_array($value, $array);
echo current( $array );
echo $value;
}

或者您可以像这样在循环中添加一个计数器:

$count = 0;
foreach($array as $value){
$array_key = search_array($value, $array);
echo $count++;
echo $value;
}

答案 3 :(得分:0)

<?php
     $arry = array("id" => 2; "username" => "foobar");
     $idx = 0;
     foreach($array as $value){
         if(array_search(arry, $value)) echo "element found: ".$idx;
         $idx++;
     }
?>

你需要的是另一个变量 - 上面例子中的$ idx来计算迭代次数,因为你不能使用与它们命名相对应的“key”。

此外,搜索功能确实称为array_search