搜索多维数组并返回特定值



很难表达我的问题,但这里有。我有一个这样的字符串:"13,4,3|65,1,1|27,3,2"。每个子组的第一个值(例如13,4,3)是数据库表中一行的id,其他数字是我用来做其他事情的值。

感谢这里的"Always Sunny",我能够使用以下代码将其转换为多维数组:

$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];

但是我现在需要能够做的是搜索数组的所有第一个值,找到一个特定的值,并返回它所在组中的其他值之一。例如,我需要找到"27"作为第一个值,然后在变量(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

像这样再运行一个foreach循环:

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

下面是的实时演示

相关内容

  • 没有找到相关文章

最新更新