0

こんにちは、

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

4 に答える 4

2

各反復後に値が増加する別の変数があります。

于 2012-05-13T09:12:04.357 に答える
2

私の理解では、エントリに文字列キーがある場合、配列内の序数の位置はありません。http://php.net/manual/en/language.types.array.phpから:

PHPの配列は、実際には順序付けられたマップです。マップは、値をキーに関連付けるタイプです。このタイプは、いくつかの異なる用途に最適化されています。配列、リスト(ベクトル)、ハッシュテーブル(マップの実装)、辞書、コレクション、スタック、キューなどとして扱うことができます。配列値は他の配列である可能性があるため、ツリーや多次元配列も可能です。

順序付けされたマップは、既存の文字列キーの上に序数キーを割り当てません。

ただし、疑似序数キーを取得するには、変数をインクリメントすることができます。

$i=0;

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

配列内の各序数キー、キー、および値をエコーアウトします。

于 2012-05-13T09:16:17.427 に答える
0

次のように現在の関数を使用できます。

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;
}
于 2012-05-13T09:14:01.080 に答える
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です。

また、検索関数は実際にarray_searchと呼ばれます。

于 2012-05-13T09:22:07.767 に答える