PHP在数组中搜索键并返回其值?

发布于 2024-10-07 16:52:33 字数 4678 浏览 0 评论 0原文

我想在多维数组中搜索键,并且想获得与该键关联的相应值。 例如 我想从下面的数组中提取以下文本:

SENT AT 12.08ms

下面的文本

sample id 41962

是一个数组 print_r() 输出:

 Array
 (
      [0] => Array
                 (
                     [VERSION] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => 3.0
                                                 )

                                         )

                                 )

                         )

                     [SAMPLE] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => sample id 41962
                                                 )

                                         )

                                 )

                         )

                     [TSAM] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => sample group 141
                                                 )

                                             [1] => Array
                                                 (
                                                     [0] => ¯
                                                 )

                                             [2] => Array
                                                 (
                                                     [0] => sample batch 81
                                                 )

                                             [3] => Array
                                                 (
                                                     [0] => 
                                                 )

                                             [4] => Array
                                                 (
                                                     [0] => 
                                                 )

                                         )

                                 )

                         )

                     [STATUS] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                             [TYPE] => Array
                                                 (
                                                     [0] => CART
                                                 )

                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => SENT AT 12.08ms
                                                 )

                                         )

                                 )

                         )

                 )
 )           

有人能为我提供针对上述问题的优化代码吗?多维数组包含5000到10000多个数组。

I would like to search key in multidimensional array and i would like to get corrosponding value associated with that key.
For e.g.
I would like to extract following texts from below array :

SENT AT 12.08ms

And the text

sample id 41962

following is an array print_r() output :

 Array
 (
      [0] => Array
                 (
                     [VERSION] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => 3.0
                                                 )

                                         )

                                 )

                         )

                     [SAMPLE] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => sample id 41962
                                                 )

                                         )

                                 )

                         )

                     [TSAM] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => sample group 141
                                                 )

                                             [1] => Array
                                                 (
                                                     [0] => ¯
                                                 )

                                             [2] => Array
                                                 (
                                                     [0] => sample batch 81
                                                 )

                                             [3] => Array
                                                 (
                                                     [0] => 
                                                 )

                                             [4] => Array
                                                 (
                                                     [0] => 
                                                 )

                                         )

                                 )

                         )

                     [STATUS] => Array
                         (
                             [0] => Array
                                 (
                                     [group] => 
                                     [param] => Array
                                         (
                                             [TYPE] => Array
                                                 (
                                                     [0] => CART
                                                 )

                                         )

                                     [value] => Array
                                         (
                                             [0] => Array
                                                 (
                                                     [0] => SENT AT 12.08ms
                                                 )

                                         )

                                 )

                         )

                 )
 )           

Can somebody provide me optimized code for above problem. The multidimensional array contains more than 5000 to 10000 arrays.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滴情不沾 2024-10-14 16:52:33

请看看我的功能是否适合您:

function get_value_by_key($array,$key)
{
 foreach($array as $k=>$each)
 {
  if($k==$key)
  {
   return $each;
  }

  if(is_array($each))
  {
   if($return = get_value_by_key($each,$key))
   {
    return $return;
   }
  }

 }

}

使用:

$array = array('array1'=>array('array2'=>array('find_some_key'=>'some_value')));
echo get_value_by_key($array,'find_some_key'); // outputs: some_value

Please, see if my function works for you:

function get_value_by_key($array,$key)
{
 foreach($array as $k=>$each)
 {
  if($k==$key)
  {
   return $each;
  }

  if(is_array($each))
  {
   if($return = get_value_by_key($each,$key))
   {
    return $return;
   }
  }

 }

}

Use:

$array = array('array1'=>array('array2'=>array('find_some_key'=>'some_value')));
echo get_value_by_key($array,'find_some_key'); // outputs: some_value
安静被遗忘 2024-10-14 16:52:33

如果所有数组键都具有相同的结构,则以下代码应该可以工作:

foreach($array as $item){
    $sentat = $item['STATUS'][0]['value'][0][0];
    $sample = $item['SAMPLE'][0]['value'][0][0];
}

更详细的信息将帮助我们为您提供更多提示:)

If all the array keys have the same structure the following code should work:

foreach($array as $item){
    $sentat = $item['STATUS'][0]['value'][0][0];
    $sample = $item['SAMPLE'][0]['value'][0][0];
}

More detailed information would help us to provide you more tips :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文