set :: extract cakephp

时间:2013-02-25 15:24:21

标签: php arrays cakephp cakephp-1.2

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

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
    ) [...]

获得codiceBiblio值的正确语法是什么?

2 个答案:

答案 0 :(得分:1)

$t2 = Set::classicExtract($t,'{n}.cd_bibliotem.codiceBiblio')

或者:

$t2 = array(null);

foreach($t as $thing)
{
    $t2[] = $thing['cd_bibliotem']['codiceBiblio'];
}

答案 1 :(得分: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,但两者都存在向后兼容性)的示例完全相同。