0

我在这个结构中有一个数组:

Array (
[0] => Array
    (
        [cd_bibliotem] => Array
            (
                [codiceBiblio] => 119179
                [codiceTematica] => 3106
            )

    )

[1] => Array
    (
        [cd_bibliotem] => Array
            (
                [codiceBiblio] => 119178
                [codiceTematica] => 3106
            )

    ) [...]

我想要一个包含所有codiceBiblio值的数组,我试过这个:

$t = Set::extract($t, '{n}.cd_bibliotem');

但我得到:

Array (
[0] => Array
    (
        [codiceBiblio] => 119179
        [codiceTematica] => 3106
    ) [...]

什么是仅获取 codeceBiblio 值的正确语法?

4

2 回答 2

1

只有你的论点是错误的

我想要一个包含所有 codiceBiblio 值的数组,我试过这个:

$t = Set::extract($t, '{n}.cd_bibliotem');

问题中指定的数组路径指向一个数组 - 只需将路径更改为指向特定值,您将获得一个平面数组作为返回值:

$t = Set::extract($t, '{n}.cd_bibliotem.codiceBiblio');

哪个会返回:

array(
    119179,
    119178,
    ...
)

这与文档中Set::extractHash::extract的示例几乎相同(Hash 替换了 2.2 中的 Set,尽管两者都是为了向后兼容而存在的)。

于 2013-03-03T00:54:48.467 回答
1
$t2 = Set::classicExtract($t,'{n}.cd_bibliotem.codiceBiblio')

或者:

$t2 = array(null);

foreach($t as $thing)
{
    $t2[] = $thing['cd_bibliotem']['codiceBiblio'];
}
于 2013-02-25T15:45:33.610 回答