【问题标题】:Looping through a php array => weird [closed]循环通过一个php数组=>奇怪[关闭]
【发布时间】:2020-04-14 09:02:51
【问题描述】:

需要对此进行全面检查,我想我只是把自己弄糊涂了。我正在尝试遍历下面的数组并为多个注册的人取回字段。

{
 [12]=>
    array(79) {
      ["Event Number"]=> int(466226)
      ["Event Info"]=> string(134) “Event ABC”
      ["Event Acct Code"]=> NULL
      ["email"] => string(12)"email@email.com
    }
}

我怎样才能最好地做到这一点?

这是我尝试过的

$associativeEventInfo=[];

    foreach ($res as $eventInfo)
    {
        $associativeEventInfo[]=$eventInfo;
    }

var dumping $associativeEventInfo 返回结果

我想根据数组取出每个字段,例如

["EvenNumber"] =466226 这样我就可以将它传递给数据库并做一些事情。

【问题讨论】:

  • 尝试了吗?
  • @Akintunde-Rotimi 是的,让我用我尝试过的内容进行编辑。
  • 你能更好地描述目标是什么吗?不太清楚
  • @JensV,是的。所以我正在使用一个用户正在注册事件的 api。他们的 API 以上述形式返回结果。我需要能够遍历注册用户的结果并提取他们的信息,以便我可以将其映射到我的数据库 API。
  • 您应该使用 foreach 两次才能获取关联数组的每个键。因为您在数字一内有一个关联数组

标签: php arrays foreach associative-array


【解决方案1】:

所以目标是将数据重新映射到可能的数据库字段。首先,访问字段非常简单:

// Assuming $returnedData is an array of assoc array containing the data;
foreach ($returnedData as $eventData)
{
    $eventNumber = $eventData['Event Number'];
    $eventInfo = $eventData['Event Info'];
    // And so on
}

重新映射它就像创建一个具有正确格式的新数组一样简单(也可以使用array_map,但我将其留作读者练习):

$remappedData = [];
// Assuming $returnedData is an array of assoc array containing the data;
foreach ($returnedData as $eventData)
{
    $remappedData[] = [
         'eventNumber' => $eventData['Event Number'],
         'eventInfo' => $eventData['Event Info'],
         // And so on
    ];
    $eventNumber = $eventData['Event Number'];
    $eventInfo = $eventData['Event Info'];
}

【讨论】:

  • 非常感谢您的帮助。你知道为什么我会得到一个未定义的索引错误吗?我正在将结果解码为 true 以进行关联。
  • @jesus2kus 可能是因为某些数据条目不包含某些数组键。如果您有一个看起来像 $arr = ['a' => 1, 'b' => 2] 的关联数组并且您尝试访问 $arr['x'] 您将收到该错误
  • @jesus2kus 您似乎已经在使用它,但是使用var_dump($data) 来显示这些值会提供一些见解。您还可以使用 isset($arr['key']) 检查数组键是否存在
  • 啊好的。你知道为什么当我 var_dump $remappedData 我只得到一个结果吗?
  • @jesus2kus 我的错,我忘了用$remappedData[] = ... 而不是$remappedData = ...。这会将一个元素附加到数组中
猜你喜欢
  • 2020-10-08
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
相关资源
最近更新 更多