Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我试图按['field']的值搜索此数组,然后返回与数组中该字段关联的['value']的值 例如,我想说“告诉我与第三个字段关联的值” 我已经尝试了很多类似以下的排列: $myVariable=$Array['result']['totalrows'][0]['rownum'][0]['field'] 为了进一步澄清,我永远不知道我的搜索字段位于哪个顺序/子数组中,我只知道与['field']关联的字符串值 我将如何做到这一点 Array ( [result] => Array

我试图按['field']的值搜索此数组,然后返回与数组中该字段关联的['value']的值

例如,我想说“告诉我与第三个字段关联的值”

我已经尝试了很多类似以下的排列: $myVariable=$Array['result']['totalrows'][0]['rownum'][0]['field']

为了进一步澄清,我永远不知道我的搜索字段位于哪个顺序/子数组中,我只知道与['field']关联的字符串值

我将如何做到这一点

Array
(
    [result] => Array
        (
            [totalrows] => 1
            [rows] => Array
                (
                    [0] => Array
                        (
                            [rownum] => 1
                            [values] => Array
                                (
                                    [0] => Array
                                        (
                                            [field] => testMeOnce
                                            [value] => 436586498
                                        )

                                    [1] => Array
                                        (
                                            [field] => testMeTwice
                                            [value] => 327698034
                                        )

                                    [2] => Array
                                        (
                                            [field] => theThirdField
                                            [value] => 108760374
                                        )

                                    [3] => Array
                                        (
                                            [field] => theFourthField
                                            [value] => 2458505
                                        )

                                    [4] => Array
                                        (
                                            [field] => fifthField
                                            [value] => -0.0201
                                        )

                                )

                        )

                )

        )

)

你期待这样的事情吗

$needle = 'theThirdField'; // searched field name
$valuesArray = $Array['result']['rows'][0]['values']; //now you have clearer array

array_walk($valuesArray, function($element, $key) use ($needle) {
    if ($element['field'] == $needle) {
        echo $element['value'];
    }
});

你期待这样的事情吗

$needle = 'theThirdField'; // searched field name
$valuesArray = $Array['result']['rows'][0]['values']; //now you have clearer array

array_walk($valuesArray, function($element, $key) use ($needle) {
    if ($element['field'] == $needle) {
        echo $element['value'];
    }
});

我会这样做,假设您只想在$myVariable维度中搜索:

$myVariable = $Array['result']['rows'][0]['values'];

foreach ($myVariable as $key => $value) {
    if( $value['field'] === 'theThirdField' ) { 
        echo $value['value']; 
        break;
    }
}

我会这样做,假设您只想在$myVariable维度中搜索:

$myVariable = $Array['result']['rows'][0]['values'];

foreach ($myVariable as $key => $value) {
    if( $value['field'] === 'theThirdField' ) { 
        echo $value['value']; 
        break;
    }
}

当我运行你的代码时,我发现了一些语法错误。我已将您的数组更改为(仅更改了语法):

现在您可以得到如下值:

print($a['result']['rows'][0]['values'][2]['value']); // --> 108760374

我希望这就是你要找的

当我运行您的代码时,出现了一些语法错误。我已将您的数组更改为(仅更改了语法):

现在您可以得到如下值:

print($a['result']['rows'][0]['values'][2]['value']); // --> 108760374

我希望这就是你要找的

谢谢大家。我综合运用了你的建议,最后做了以下几点:

$valuesArray = $Array['result']['rows'][0]['values'];

foreach ($valuesArray as $value) {
    $fieldName = $value['field'];
    $$fieldName = $value['value'];
}

因为我知道我想要的所有字段的名称,但不知道顺序,所以这允许我捕获每个字段的所有值,并将字段的名称变为变量名。

谢谢大家。我综合运用了你的建议,最后做了以下几点:

$valuesArray = $Array['result']['rows'][0]['values'];

foreach ($valuesArray as $value) {
    $fieldName = $value['field'];
    $$fieldName = $value['value'];
}

因为我知道我想要的所有字段的名称,但不知道顺序,所以我可以捕获每个字段的所有值,字段的名称将成为变量名。

尝试这样做时是否有错误?尝试这样做时是否有错误?