0

提前感谢您提供的任何帮助。

我有一个这样的字符串:

[{"title":"Image One","description":"Image One\r\nDescription","image":{"attachment_id":"111"}},{"title":"Image Two","description":"Image Two Description","image":{"attachment_id":"222"}},{"title":"Image Three","description":"Image Three\r\nDescription","image":{"attachment_id":"333"}}]

我不确定如何将它放入一个数组中以便我可以使用所有附件 ID?

就像是:

echo $attachment_id[0];
echo $attachment_id[1];

等等

4

6 回答 6

1

那是JSON。

PHP 有一个内置的JSON 解析器,您可以使用:

$attachments = json_decode($data, true);
foreach ($attachments as $att) {
    echo $att["title"] . "\n";
}
于 2013-02-04T10:13:04.113 回答
1

你拥有的那个“字符串”是 JSON 格式的,PHP 有一些内置的函数可以使用它!

您可以使用json_decode将其转换为对象或数组

这是一个将其转换为 PHP 数组的示例:

<?php

    $json = '[{"title":"Image One","description":"Image One\r\nDescription","image":{"attachment_id":"111"}},{"title":"Image Two","description":"Image Two Description","image":{"attachment_id":"222"}},{"title":"Image Three","description":"Image Three\r\nDescription","image":{"attachment_id":"333"}}]';
    $data = json_decode($json, true);
    print_r($data);

其输出为:

Array
(
    [0] => Array
        (
            [title] => Image One
            [description] => Image One
Description
            [image] => Array
                (
                    [attachment_id] => 111
                )

        )

    [1] => Array
        (
            [title] => Image Two
            [description] => Image Two Description
            [image] => Array
                (
                    [attachment_id] => 222
                )

        )

    [2] => Array
        (
            [title] => Image Three
            [description] => Image Three
Description
            [image] => Array
                (
                    [attachment_id] => 333
                )

        )

)
于 2013-02-04T10:15:37.013 回答
0

$encoded-variable = [{"title":"Image One","description":"Image One\r\nDescription","image":{"attachment_id":"111"}},{"title":"Image Two","description":"Image Two Description","image":{"attachment_id":"222"}},{"title":"Image Three","description":"Image Three\r\nDescription","image":{"attachment_id":"333"}}]

 use     `$result = json_decode($encoded_varaible,true);'
于 2013-02-04T10:13:41.593 回答
0

这不是一个字符串。把它放在引号里,那么它就是一个字符串,更准确地说是JSON。您可以使用json_decode将其解析为数组。

$myString = '[{"title":"Image One","description":"Image One\r\nDescription","image":
   {"attachment_id":"111"}},{"title":"Image Two","description":"Image Two 
   Description","image":{"attachment_id":"222"}},{"title":"Image 
   Three","description":"Image Three\r\nDescription","image":{"attachment_id":"333"}}]';

$myArray = json_decode($myString, true);
var_dump($myArray[0]['image']['attachment_id'];
于 2013-02-04T10:18:35.297 回答
0

这是一个 JSON 编码的字符串。只需使用 json_decode http://php.net/manual/en/function.json-decode.php将其解码为数组并获得所需的内容。

<?php
$string = 'the string above';

$array = json_decode($string, true);
$attachments = array_map(function($e) {
    return $e['image']['attachment_id']; 
}, $array);
print_r($attachments); // prints Array (114, 222, 333)
于 2013-02-04T10:38:51.033 回答
-1

使用 json_decode() 如下所示。你会得到一个数组结果。 json_decode([{"title":"Image One","description":"Image One\r\nDescription","image":{"attachment_id":"111"}},{"title":"Image Two","description":"Image Two Description","image":{"attachment_id":"222"}},{"title":"Image Three","description":"Image Three\r\nDescription","image":{"attachment_id":"333"}}])

于 2013-02-04T10:15:36.553 回答