php
  • arrays
  • multidimensional-array
  • 2016-10-11 5 views 0 likes 
    0

    私の質問には難しいが、ここに行く。私はそういう文字列を持っている: "13,4,3 | 65,1,1 | 27,3,2"。各サブグループの最初の値(例:、4,3)は、データベーステーブルの行のIDであり、他の数値は他のものを実行するために使用する値です。多次元配列を検索して特定の値を返す

    ここでの「常にサニー」のおかげで、私はこのコードを使用して多次元配列に変換することができるよ:

    $data = '13,4,3|65,1,1|27,3,2'; 
    
    $return_2d_array = array_map (
        function ($_) {return explode (',', $_);}, 
        explode ('|', $data) 
    ); 
    

    私は

    echo $return_2d_array[1][0]; 
    
    を使用して任意の値を返すことができますよ

    しかし、私は今、配列の最初のすべての値を検索し、特定の値を見つけて、グループの他の値の1つを返します。たとえば、最初の値として「27」を見つけ、それを変数(3)に2番目の値として出力する必要があります。このような

    答えて

    2

    ラン1つの以上foreachループ:

    $value_to_search = 27; 
    foreach($return_2d_array as $array){ 
        if($array[0] == $value_to_search){ 
         echo $array[1]; // will give 3 
         break; 
        } 
    } 
    

    ここlive demoです。あなたが検索に使用できる配列を構築するデータセットを通して

    3

    あなたがすることができますループ:

    $data = '13,4,3|65,1,1|27,3,2'; 
    $data_explode = explode("|",$data); // make array with comma values 
    
    foreach($data_explode as $data_set){ 
        $data_set_explode = explode(",",$data_set); // make an array for the comma values 
        $new_key = $data_set_explode[0]; // assign the key 
        unset($data_set_explode[0]); // now unset the key so it's not a value.. 
        $remaining_vals = array_values($data_set_explode); // use array_values to reset the keys 
        $my_data[$new_key] = $remaining_vals; // the array! 
    } 
    
    if(isset($my_data[13])){ // if the array key exists 
        echo $my_data[13][0]; 
        // echo $my_data[13][1]; 
        // woohoo! 
    } 
    

    ここでは、アクションである:http://sandbox.onlinephpfunctions.com/code/404ba5adfd63c39daae094f0b92e32ea0efbe85d

    +1

    これは、あなたが* *使用する必要がある方法です。現在受け入れられている答えの配列を繰り返し処理するだけで、IDで配列をキーすると、PHPはデータにもっと効率的にアクセスできます。 – Sammitch

    関連する問題