У меня есть этот код, который выполняет работу по поиску имени опции, как я могу использовать его для поиска значения опции из массива.
$productspp ='[{
"id": 4674388066436,
"title": "1st march",
"options": [{
"id": 6046836162692,
"product_id": 4674388066436,
"name": "Size",
"position": 1,
"values": ["12", "24", "36"]
}, {
"id": 6067871875204,
"product_id": 4674388066436,
"name": "z",
"position": 2,
"values": ["blue", "green"]
}, {
"id": 6067871907972,
"product_id": 4674388066436,
"name": "Material",
"position": 3,
"values": ["silk", "cotton"]
}],
}, {
"id": 4674394325124,
"title": "2nd march",
"options": [{
"id": 6046844190852,
"product_id": 4674394325124,
"name": "Title",
"position": 1,
"values": ["Default Title"]
}],
}, {
"id": 4679851704452,
"title": "3rd marchhh",
"options": [{
"id": 6053112545412,
"product_id": 4679851704452,
"name": "Title",
"position": 1,
"values": ["Default Title"]
}]
}]';
$array = json_decode($productspp,1);
$filter_name555 ='options';
$dummytstt ='values';
$filter_value= blue;
$expected = array_filter($array, function($el) use ($filter_name555, $dummytstt, $filter_value) {
return ( stripos($el[$filter_name555][0][$dummytstt], $filter_value) !== false );
}
});
, если пользователь выполнил поиск по параметру option_value, и он соответствует, то в нем должно быть указано, что product, поэтому в этом случае, если пользователь ищет шелк, он должен указать этот продукт, но не
для имени параметра, он работает для значения параметра, он не работает, так как stripos ожидает, что это будет строка, но здесь в данных это массив.
мы попытались in_array также отфильтровать, но это также не сработало
, когда мы ищем что-то вроде 12, 24, 36, синего или зеленого, тогда в этой части json должен быть указан список. я имею в виду этот продукт и код, который я дал выше, делает то же самое, но для имени опции. Вы можете видеть, что значение параметра является массивом. он может иметь более одного значения, поэтому мой код не работает.
{
"id": 4674388066436,
"title": "1st march",
"options": [{
"id": 6046836162692,
"product_id": 4674388066436,
"name": "Size",
"position": 1,
"values": ["12", "24", "36"]
}, {
"id": 6067871875204,
"product_id": 4674388066436,
"name": "z",
"position": 2,
"values": ["blue", "green"]
}, {
"id": 6067871907972,
"product_id": 4674388066436,
"name": "Material",
"position": 3,
"values": ["silk", "cotton"]
}],
}