【问题标题】:PHP search array return keyPHP搜索数组返回键
【发布时间】:2010-06-21 13:05:03
【问题描述】:

我有一个看起来像这样的数组,我想搜索一个 saleref 并让它给我 PHP 中的密钥,我尝试使用 array_search 但我什么也没得到。或者,如果有更好的方法,我只想在与 salesref 搜索的相同数组中显示其他值。

 Array
    (
        [xml] => Array
            (
                [sale] => Array
                    (
                        [0] => Array
                            (
                                [saleref] =>  305531
                                [saleline] =>   1
                                [date] => 
                                [team] => WH
                                [manifest] =>       0
                                [qty] =>     1
                                [order_status] => 
                            )

                        [141] => Array
                            (
                                [saleref] =>  306062
                                [saleline] =>   1
                                [date] => 
                                [team] => 
                                [manifest] =>       0
                                [qty] =>     1
                                [order_status] => RECEIVED
                            )

                        [1] => Array
                            (
                                [saleref] =>  306062
                                [saleline] =>   2
                                [date] => 
                                [team] => WH
                                [manifest] =>       0
                                [qty] =>     1
                                [order_status] => 
                            )

【问题讨论】:

  • 您正在尝试搜索 xml 列表是否正确?
  • 已转换为数组

标签: php search arrays


【解决方案1】:
<?php
function searchSale($needle)
{
    foreach ($data['xml']['sale'] as $id => $sale)
    {
        if ($sale->saleref == $needle)
        {
            return $id;
        }
    }
    return null;
}
?>

【讨论】:

  • 应该是$sale['saleref'],因为它们都是数组,而不是对象。
【解决方案2】:
function findkey($val, &$array)
{
   $keys=array();
   foreach ($array as $key=$try) {
     if ($try===$val) {
       $keys[]=$key;
     } else if (is_array($try)) {
       $contained=findkey($val, $try);
       if (count($contained)) {
          $keys[]=$contained;
       }
     }
   }
   return $keys;
}

C.

【讨论】:

    猜你喜欢
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多