Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php获取数组的名称_Php_Arrays - Fatal编程技术网

php获取数组的名称

php获取数组的名称,php,arrays,Php,Arrays,如何检索每个数组的名称,然后访问键和值: 例如,我需要循环使用$shortcode并获得数组的主名称:'image\u section''video\u section' 然后检索某个键的值。我知道如何检索键和值,但真的不知道如何获取已声明数组的名称。如果我这样做:var\u dump($value)我看到了数组的名称,但如何访问它?您可以使用 请注意,$value在这种情况下指的是数组,您可以再次foreach访问内部值。使用数组上的array\u flip函数 foreach($shortc

如何检索每个数组的名称,然后访问键和值:

例如,我需要循环使用$shortcode并获得数组的主名称:
'image\u section''video\u section'

然后检索某个键的值。我知道如何检索键和值,但真的不知道如何获取已声明数组的名称。如果我这样做:
var\u dump($value)我看到了数组的名称,但如何访问它?

您可以使用


请注意,
$value
在这种情况下指的是数组,您可以再次foreach访问内部值。

使用数组上的array\u flip函数

foreach($shortcodes as $key => $value) {
  echo $key // echoes "vide_section" and "image_section" 

  foreach($value as $innerKey => $innerValue) {
    echo $innerKey // echoes 'no_preview', 'params', 'shortcode', 'popup_title', 'shortcode_icon' twice
  }
}
有:

你可以通过它:

$keynames = array_keys($shortcodes);
或者将值与案例一起翻转(虽然我不推荐最后一个),然后再将其进行遍历。但是,在这种情况下,数组翻转最好是单独使用(尽管我很喜欢将函数放在脑后)。

是的,您可以使用,它根据创建顺序遍历数组中的每个项目

foreach($shortcodes as $key=>values){ echo $key; }

foreach($key=>value的短码){echo$key;}
<代码>$key
=“视频部分”/“图像部分”。@putvande;你可能忘记了什么。我只得到了$key和value,但没有数组的名称…它不是“name”,而是“key”。你到底是说
name
,这是变量名吗?谢谢,但它不起作用。。。我得到所有的数组键和值,而不是每个数组的名称你说的“名称”是什么意思?数组没有名称,它们有键(如“vide_section”和“image_section”)。如果要获取内部数组中的键名,必须再次使用
foreach
。它可以工作,但输出每个数组键的是$innerKey。。。所以我需要3个循环才能到达每个数组的子键。。。。奇怪的是,如果你知道外键名,你可以做
foreach(shortcode['video\u section']作为$innerKey=>$innerValue)
foreach(shortcode['image\u section']作为$innerKey=>$innerValue)
,但在这种情况下,如果你添加第三个数组,你也必须以
foreach
的形式编写。事实上,我现在不知道键名。我找到了为什么在获取密钥名之前需要两个循环。这是因为:
$shortcodes[]=$th_shortcodes。只需要这个
$shortcodes=$th\u shortcodes
要使用
array\u flip
您需要确保所有值都是唯一的字符串或数字。注意,这里不是这样,因为所有的值都是数组。
$keynames = array_keys($shortcodes);
foreach($shortcodes as $key=>values){ echo $key; }
foreach($shortcodes as $key => $value) {

   // $key represents video_section for 1st iteration and image_section for 2nd.
   //Here each are array, so you can again iterate over $value and get each item .

   foreach($value as $key2 => $value2) {
      //here keys are no_preview, params and so on on subsequent iterations.
   }
}