1

配列内のいくつかの値の最初の出現を見つけたいです。

$sentence = array(I, want, to, go, to, the, market);
if(in_array(array('swim','fly','go'), $sentence)) {
    // Should return KEY = 3 as 'go' was found in the third key of the array
    }

これはかなり一般的だと思いますが、どうすればできますか?

4

5 に答える 5

1

http://tr.php.net/manual/en/function.array-keys.php

より具体的には、このタイプの機能を探していると思いますか?

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

上記の例では、次のように出力されます。

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)
于 2012-07-25T05:45:07.417 に答える
0
function find_in_array($needles,$array) {
    $pos = false;
    foreach ($needles as $key => $value) {
        if (in_array($value, $array)) {
            if(!$pos || array_search($value, $array) < $pos) {
                $pos = array_search($value, $array);
                }
            }
        }
        return $pos;
    }

echo find_in_array($values,$sentence);

これは私が今使用しているものです。DarianBrownによって提案されたようにarray_keysをテストしています

于 2012-07-25T06:01:45.820 に答える
0

この関数array_searchを使用してください。配列内に要素が見つかった場合、要素のキーが返されます

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
于 2012-07-25T05:47:19.130 に答える
0

まず、 in_array 関数のマニュアルを正しく読む必要があります。パラメータを間違った順序で渡していました

$sentence = array(I, want, to, go, to, the, market);

 $found_key = array();   
 foreach($sentence as $key => $word)
    {
      if(in_array($word,array('swim','fly','go')))  
       { $found_keys[] = $key;}
    }
   print_r($found_keys);

これがあなたが必要とするものであることを願っています

于 2012-07-25T05:48:52.203 に答える
0

array_keys はうまくいきます。

$keys = array_keys($sentence,array('swim','fly','go');

$keys は、swim、fly、go が $sentence に現れるキーのリストになります。

以下のコードが空の値を持つキーのリストを返すのと同じように

$array = array('one','','three');
$keys = array_keys($array,"");
于 2012-07-25T05:53:24.820 に答える