<?php
$value = "100% Wool";
$separators = [
"/",
",",
"&",
" AND "
];
$value = str_replace($separators, "|", $value);
$candidates = explode("|", $value);
foreach($candidates as $candidate) {
$percentage = (count($candidates) == 1) ? "100%" : null;
if($candidate = trim($candidate)){
if(strpos("%", $candidate) !== false) {
list($percentage, $material) = explode("%", $candidate);
$percentage .= "%";
} else {
$material = $candidate;
}
$entities = $this->mapping['material'];
if($id = $this->exact($material, $entities)) {
$material = [
'material_id' => $id,
'percentage' => $percentage
];
$product['materials'][] = $material;
} else {
$this->log_errors($product, $this->dictionaries['material'], $value, 'Missing material:' . $value);
}
}
}
print_r($product['materials']);
preferences:
44.38 ms | 402 KiB | 5 Q