当我不知道密钥时,如何访问嵌套数组中的元素?

时间:2015-12-13 01:37:42

标签: php arrays multidimensional-array

我有一个在WordPress上运行的表单插件,可以上传以下某些字段的值:

[31] => Pelican
[29] => Array (
    [FErQa] => Array (
        [user_file_name] => Pelican.jpg 
        [file_name] => pelican-006.jpg
        [file_path] => /nas/content/live/mysite/wp-content/uploads/sites/2/ninja-forms/ 
        [file_url] => http://mysite/wp-content/uploads/sites/ ... an-006.jpg
        [complete] => 1
        [upload_id] => 19
    )
)

访问31 => Pelican没问题,因为我知道密钥。问题出在file_path FErQa 29 FErQa,因为file_path键会更改每次上传,但我不知道密钥。

那么,当我不知道密钥时,如何在FErQa中访问FErQaonCreate()

1 个答案:

答案 0 :(得分:1)

如果$arr[29]中只有一个元素:

$item = reset($arr[29]);
if ($item) {
  $search_key = key($arr[29]);
  // Work with $search_key and $item
}

如果可能有多个项目,请查找定义为file_path的项目:

$found = false;
reset($arr[29]);
while (!$found && (list($search_key, $item) = each($arr[29]))) {
  if (isset($item['file_path'])) {
    $found = true;
  }
}

if ($found) {
  // Work with $search_key and $item
}

在这两种情况下,根本不需要对某些变量进行键分配(显示为明确),您只需使用$item进行操作。