【问题标题】:accessing values from php array从php数组访问值
【发布时间】:2012-02-10 17:48:43
【问题描述】:

我在从格式如下的数组中获取值时遇到问题:

array(
   [key]=>array(
            [0]=>value
            [1]=>value
            [2]=>value)
   [key]=>array(
            [0]=>value
            [1]=>value))

我正在使用队列将每个键作为队列项运行并处理信息。所以要创建队列项目,我已经尝试过:

while ($array = $result->fetchAssoc())
                {

                    $queue->createItem($array);

                }

这无法创建任何项目,所以我改用了这个方法

if ($array != 0 || $array != NULL) {
       foreach ($array as $row) { 
            $queue->createItem($row);
       }
}

创建队列项目后,队列调用一个传递队列 $item 的函数,这就是我遇到问题的地方,因为我可以成功获取第二级数组的所有值,但我无法访问第一级的键.

function work_function($item){

   foreach($item as $row=>$job){
       //do something
   }
}

在我尝试过的函数中:

 //1
    $arrayKEY= $item;

    //2
    foreach($item as $row){
     $arrayKEY= $row;
    }

我只是无法获得所需的值。我做错了什么/我可以做些什么来完成这个?

谢谢

【问题讨论】:

  • @user975044。 $queue 的定义更简单吗?具体是哪个Php对象?
  • 好的,特别是对于我正在使用的我的情况:api.drupal.org/api/drupal/modules--system--system.api.php/… 糟糕的文档虽然.. Drupal 我知道.. 但这对问题无关紧要。队列基本上是将对象加载到要处理的容器或行中的一种方式。因此,如果我希望通过相同的函数按该顺序处理数字 1、2、3、4,我可以为每个数字创建一个队列对象。所以在队列中我有 4 个对象,它们依次包含数字 1、2、3、4。
  • 要开始处理队列,第一个对象(编号为 1)会从队列中拉出并进行处理。我不应该提到这一点,因为它确实没有引起这里的问题。它能够访问函数中的数组键和值
  • @user975044:我们都知道队列是什么,我们正在询问您的$queue 对象具体是什么。

标签: php arrays drupal for-loop


【解决方案1】:

这里的信息不多,但如果数组像你展示的那样,它是一个多维数组,因此需要2个for循环。

function work_function($item){
   foreach($item as $row=>$job){
       echo "Row $row:\n";
       foreach($job as $value){
          echo $value."\n";
       }
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 2013-06-12
    • 2010-09-06
    • 2013-12-15
    • 2023-03-24
    • 2016-11-12
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多