如何在数组中获取列名?

时间:2016-08-27 02:26:56

标签: php

我有一个脚本,我希望在array()中获取列的名称。 从API,我可以获得具有多个值的array(),我想获得特定列的名称。

我没有专栏#39;名称,如何获取它们的列表并逐个获取? 在这里,我想得到" 573"仅

Array ( [success] => 1 [errors] => Array ( ) [data] => Array ( [Messages] => Array ( [573] => PHP is fun ) ) )

感谢。

1 个答案:

答案 0 :(得分:0)

你只需要做一个递归迭代器,它将根据密钥匹配使用它来递归或返回一个值:

EntityState.Modified

给你:

<?php
$arr    =   array(
                'success' => 1,
                'errors' => array(),
                'data' => array(
                    'Messages' => array(
                        573 => 'PHP is fun'
                    )
                )
            );

function recurseIt($array,$find = false)
    {
        # Loop through array
        foreach($array as $key => $value) {
            # If the key is the same as the value
            if($key == $find)
                # Send back the value
                return $value;
            # If the value is an array
            if(is_array($value)) {
                # Use same array to recurse the array
                $val    =   recurseIt($value,$find);
                # If there is a value to return
                if(!empty($val))
                    # Send it back
                    return $val;
            }
        }
    }
# Note, if the key matches, could also be an array
echo recurseIt($arr,573);

修改

如果你不知道密钥,大概你有值,所以这将根据搜索值返回密钥:

PHP is fun

给你:

function recurseIt($array,$find = false)
    {
        foreach($array as $key => $value) {
            # If the key is the same as the value
            if(!is_array($value) && ($value == $find))
                # Send back the key name
                return $key;
            if(is_array($value)) {
                $val    =   recurseIt($value,$find);
                if(!empty($val))
                    return $val;
            }
        }
    }

echo recurseIt($arr,'PHP is fun');

现在,如果您不知道密钥名称是什么,并且不知道相关的值,那么该函数不知道如何搜索。 573 还没有在PHP库中,所以那时你几乎没有运气。