0

私はこの構造に配列を持っています:

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

    )

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

    ) [...]

すべてのcodiceBiblio値を持つ1つの配列が必要です。これを試しました:

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

しかし、私は得ます:

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

codiceBiblio値だけを取得するための正しい構文は何ですか?

4

2 に答える 2

1

あなたの議論だけが間違っている

すべてのcodiceBiblio値を含む1つの配列が必要です。これを試しました:

$ 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 に答える