0
$myArray
(
    [0] => Array
        (
            [0] => 27
            [1] => 87
            [2] => 76
            [3] => 37
            [4] => 69
        )

    [1] => Array
        (
            [0] => 2
            [1] => 43
            [2] => 56
            [3] => 26
            [4] => 60
        )

    [2] => Array
        (
            [0] => 36
            [1] => 29
            [2] => 59
            [3] => 13
            [4] => 65
        )

    [3] => Array
        (
            [0] => 63
            [1] => 26
            [2] => 29
            [3] => 59
            [4] => 28
        )
)

$myArray があります。指定された番号のメイン配列インデックスを取得したい。

例:37なら0、56なら1、69なら0、28なら3が欲しい。

以下の関数を使ってみたのですが、0になってしまいました。エラーでしょうか?!?

function search2dArray($needle, $haystack) {
    if (is_array($haystack)) {
        for ($h = 0; $h < count($haystack); $h++) {
            $arraySearch = array_keys($haystack[$h], $needle);
            if ($arraySearch != 0) {
                return $h;
            }
        }
    } else {
        return false;
    }
}

echo search2dArray(60, $myArray);

助けてくれますか?

4

3 に答える 3

0

array_keys() は常に配列型を返します。つまり、$arraySearch はおそらくarray(4=>60);OR 空の配列ですarray()

于 2013-06-10T17:06:48.143 に答える
0

整数に等しいすべてのサブ配列要素のメイン配列インデックスを取得する必要がある場合は、次のようにする必要があります。

    <?php
$myArray = array(
array(27, 87, 76, 37, 69),
array(2, 43, 56, 26, 60),
array(36, 29, 59, 13, 65),
array(63, 26, 29, 59, 28),
);

function search2dArray($needle, $haystack) {
 $results_arr = array();
 foreach ($haystack as $key => $subarray) {
    if (in_array($needle, $subarray))
        array_push($results_arr, $key);
}
   echo $needle,' was found in<br />';

  foreach ($results_arr as $r_key => $master_index ){
        echo '$myArray['.$master_index.']<br />' ;
  }


  }

search2dArray(29, $myArray); //1

?>

出力:

29 個が
$myArray[2]
$myArray[3]で見つかりました

于 2013-06-10T17:22:10.767 に答える