配列の特定の部分を取得し、HTMLに変更してビューに送り返そうとしています。PHP配列内のJSONへのアクセス
私は配列がJSONだと思っています。それをHTMLに変更するには、どうすればその情報にアクセスできるのですか?
{"products":[{"id":8,"link":"http:\/\/www.mysite.com\/mydirectory\/prestashop\/trophies\/8-football-resin
.html","quantity":2,"image":"http:\/\/www.mysite.com\/mydirectory\/prestashop\/img\/p\/en-default-home_default
.jpg","image_cart":"http:\/\/www.mysite.com\/mydirectory\/prestashop\/img\/p\/en-default-cart_default
.jpg","priceByLine":"$40.00","name":"Football Resin","price":"$40.00","price_float":40,"idCombination"
:0,"idAddressDelivery":0,"is_gift":false,"hasAttributes":false,"hasCustomizedDatas":true,"customizedDatas"
:[{"customizationId":76,"quantity":1,"datas":[{"type":1,"datas":[{"index":0,"value":"%5B%5B%7B%22name
%22%3A%22trophy%5B1%5D%5Bline1%5D%22%2C%22engraving%22%3A%22ccc%22%7D%2C%7B%22name%22%3A%22trophy%5B1
%5D%5Bline2%5D%22%2C%22engraving%22%3A%22ddd%22%7D%2C%7B%22name%22%3A%22trophy%5B1%5D%5Bline3%5D%22%2C
%22engraving%22%3A%22dddd%22%7D%5D%5D","truncatedValue":"%5B%5B%7B%22name%22%3A%22..."}]}]},{"customizationId"
:77,"quantity":1,"datas":[{"type":1,"datas":[{"index":0,"value":"%5B%5B%7B%22name%22%3A%22trophy%5B1
%5D%5Bline1%5D%22%2C%22engraving%22%3A%22asdf%22%7D%2C%7B%22name%22%3A%22trophy%5B1%5D%5Bline2%5D%22
%2C%22engraving%22%3A%22dddasdf%22%7D%2C%7B%22name%22%3A%22trophy%5B1%5D%5Bline3%5D%22%2C%22engraving
%22%3A%22ddddddd%22%7D%5D%5D","truncatedValue":"%5B%5B%7B%22name%22%3A%22..."}]}]}]}],"discounts":[]
,"shippingCost":"$7.00","shippingCostFloat":7,"wrappingCost":"$0.00","nbTotalProducts":2,"total":"$47
.00","productTotal":"$40.00","freeShipping":"$0.00","freeShippingFloat":0,"free_ship":false,"isVirtualCart"
:false,"hasError":false,"crossSelling":""}
私が得ることに興味を持って一部がcustomizedDatasの「価値」である(私はより簡単にそれを読むことができるように、私はそのようにフォーマットされた):
私の全体の配列は、現在、次のようになります。
"customizedDatas"
:
[
{
"customizationId":76,
"quantity":1,
"datas":
[{
"type":1,
"datas":
[{
"index":0,"value":"%5B%5B%7B%22name
%22%3A%22trophy%5B1%5D%5Bline1%5D%22%2C%22engraving%22%3A%22ccc%22%7D%2C%7B%22name%22%3A%22trophy%5B1
%5D%5Bline2%5D%22%2C%22engraving%22%3A%22ddd%22%7D%2C%7B%22name%22%3A%22trophy%5B1%5D%5Bline3%5D%22%2C
%22engraving%22%3A%22dddd%22%7D%5D%5D","truncatedValue":"%5B%5B%7B%22name%22%3A%22..."
}]
}]
},
「値」は、エンコードされた/シリアル化されたJSONの束であることがわかります。私はそれを配列から取り出し、その部分をHTMLに変換し、配列にダンプしてビューに渡し終える必要があります。
私はフロントエンドのいくつかの部分を変更しましたが、この情報を必要とする多数のスポットがあります - コントローラでそれをやろうとしていますので、数十を更新するのではなく、フロントエンド全体のコードのビット数。フロントエンドには
- この作品:私は上記の配列の「価値」のためのデータを取得ん
{if isset($customization.datas.$CUSTOMIZE_TEXTFIELD.0)}
{$encoded_values = $customization.datas.$CUSTOMIZE_TEXTFIELD.0.value}
{$decoded_url_values = urldecode($encoded_values)}
{$json_values = json_decode($decoded_url_values)}
{$json_key_values=array_keys($json_values)}
{foreach $json_values as $orderItems }
<h6 class="item-cart-title">{l s='Item '}{[email protected]+1}</h6>
<ul>
{foreach $orderItems as $orderItem }
<li class="item-cart-engraving">{l s='Line '}{[email protected]+1} : {$orderItem->engraving}</li>
{/foreach}
</ul>
{/foreach}
どのように?現在、customizedDatasがこのように構築され
:
$customized_datas[(int)$row['id_product']][(int)$row['id_product_attribute']][(int)$row['id_address_delivery']][(int)$row['id_customization']]['datas'][(int)$row['type']][] = $row;
だから私は、[「件のデータ」]知っているが、私が欲しいものである - しかし、その配列の内部のオブジェクトにアクセスするための最良の方法は何ですか?
あなたがdownvoteを選択した場合 - なぜ私が間違って何かをしたのか知っている理由を教えてください。 – Hanny
投稿した「配列」はJSON文字列です。 PHP配列はどこに格納されていますか? –
@ハニー私はその理由のために同意しupvoted。私は今あなたのコードをチェックアウトすることができますか分からない。 – jDo