На выходе получаю массив в формате:
[extra_fields] => [{"id":"19","value":"3"},{"id":"1","value":"\"Drauber\" \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u0441\u0442\u0430\u043b\u044c"},{"id":"37","value":"3"},{"id":"36","value":"4"},{"id":"35","value":"17"},{"id":"12","value":"\u0411\u043b\u043e\u043a \u0433\u0430\u0437\u043e\u0441\u0438\u043b\u0438\u043a\u0430\u0442\u043d\u044b\u0439 600x200x200 D600"},{"id":"2","value":"2650 \u0440\u0443\u0431. \u043c\u00b3
68.41"},{"id":"3","value":"
\u0420\u0430\u0437\u043c\u0435\u0440\u044b 600x200x200 D600 B 3,5 F- 100 \u0413\u041e\u0421\u0422 1360-2007, \u0413\u041e\u0421\u0422 31359-2007, \u0413\u041e\u0421\u0422 30247.1-94.<\/p>"},{"id":"4","value":""},{"id":"13","value":"600"},{"id":"14","value":"200"},{"id":"15","value":"200"},{"id":"5","value":""},{"id":"6","value":"B 3.5 B 5.0"},{"id":"7","value":"F100"},{"id":"8","value":"0.14"},{"id":"16","value":"0.15"},{"id":"17","value":"0.3"},{"id":"10","value":""},{"id":"9","value":"1.8"},{"id":"18","value":"28.8"},{"id":"11","value":""}]
Как получить значение только:
{"id":"2","value":"2650 \u0440\u0443\u0431. \u043c\u00b3
68.41"}
Код цикла:
<?php foreach($this->items as $item): ?>
<!-- Start K2 Item Layout -->
<div class="itemContainer">
<div class="catItemView groupLeading">
<a href="<?php echo $item->link; ?>" class="catItemView-link">
<div class="catItemImageBlock">
<span class="catItemImage">
<img src="<?php echo $item->imageGeneric; ?>" alt="<?php if(!empty($item->image_caption)) echo K2HelperUtilities::cleanHtml($item->image_caption); else echo K2HelperUtilities::cleanHtml($item->title); ?>" style="width:<?php echo $item->params->get('itemImageGeneric'); ?>px; height:auto;" />
</span>
</div>
<div class="catItemHeader">
<!-- Item title -->
<h3 class="catItemTitle">
<?php echo $item->title; ?>
</h3>
</div>
<div class="catItemManufacturer">
123
<pre style="display: none;">
<?
print_r($item);
?>
</pre>
</div>
<div class="catItemPrice">
<span class="price"> <?php echo $extrafields[2];?> руб./шт.</span>
</div>
<div class="item-description">
<a class="catItemView-link" href="<?php echo $item->link; ?>"></a>
<a class="btn btn-order-item btn-link-wn" data-price="" data-name="<?php echo $item->title; ?> " href="#order-wn">Купить</a>
</div>
<div class="clr"></div>
</a>
</div>
</div>
<!-- End K2 Item Layout -->
<?php endforeach; ?>
$item - содержит массив:
stdClass Object
(
[id] => 101
[title] =>
[alias] =>
[catid] => 2
[published] => 1
[introtext] =>
[fulltext] =>
[video] =>
[gallery] =>
[extra_fields] => [{"id":"19","value":"3"},{"id":"1","value":"\"Drauber\" \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u0441\u0442\u0430\u043b\u044c"},{"id":"37","value":"3"},{"id":"36","value":"4"},{"id":"35","value":"17"},{"id":"12","value":"\u0411\u043b\u043e\u043a \u0433\u0430\u0437\u043e\u0441\u0438\u043b\u0438\u043a\u0430\u0442\u043d\u044b\u0439 600x200x200 D600"},{"id":"2","value":"2650 \u0440\u0443\u0431. \u043c\u00b3
68.41"},{"id":"3","value":"
\u0420\u0430\u0437\u043c\u0435\u0440\u044b 600x200x200 D600 B 3,5 F- 100 \u0413\u041e\u0421\u0422 1360-2007, \u0413\u041e\u0421\u0422 31359-2007, \u0413\u041e\u0421\u0422 30247.1-94.<\/p>"},{"id":"4","value":""},{"id":"13","value":"600"},{"id":"14","value":"200"},{"id":"15","value":"200"},{"id":"5","value":""},{"id":"6","value":"B 3.5 B 5.0"},{"id":"7","value":"F100"},{"id":"8","value":"0.14"},{"id":"16","value":"0.15"},{"id":"17","value":"0.3"},{"id":"10","value":""},{"id":"9","value":"1.8"},{"id":"18","value":"28.8"},{"id":"11","value":""}]
[extra_fields_search] => "Drauber" г. Электросталь "Drauber" Электросталь Газосиликат D600 600x200x200 Блок газосиликатный 600x200x200 D600 2650 руб. м³
68.41
Размеры 600x200x200 D600 B 3,5 F- 100 ГОСТ 1360-2007, ГОСТ 31359-2007, ГОСТ 30247.1-94.
600 200 200 B 3.5 B 5.0 F100 0.14 0.15 0.3 1.8 28.8
[created] => 2016-10-30 15:44:56
[created_by] => 775
[created_by_alias] =>
[checked_out] => 0
[checked_out_time] => 0000-00-00 00:00:00
Допустим ваш массив хранится в переменной $arr
, а в ключе [extra_fields]
этого массива сохранена валидная json-строка, тогда решение можно записать так:
array_map(function($i){
$i->id != 2 ?: print $i->value;
}, json_decode($arr['extra_fields']));
В теле callback-функции записано условие, в котором проверяется значение поля id
, если оно равно 2
, то происходит вывод значения поля value
. В результате вы увидите:
2650 руб. м³ 68.41
Доброе утро. Примерно так
$arr = '{"id":"2","value":"2650 \u0440\u0443\u0431. \u043c\u00b3 68.41"}';
$a = json_decode($arr, true);
echo $a['value'];
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На Perl использую модуль HTML::Template; Выводом странички соответственно занимается Perl-скрипт, большие куски HTML_кода вытягивая из шаблоновПосле...
Всем приветСтолкнулся с задачей, в которой нужно получить полную строку get с флагом