У меня есть строка, подобная приведенной ниже:
'STRIPLED 9.6W 24V 2.7K 120LED IP20 1CM',
'STRIPLED 9.6W 24V 3K 120LED IP20 1CM',
'STRIPLED H 6 W 24V 4K 140 LED IP20 1CM',
'STRIPLED HO 12.3 W 24V 3K 128 LED IP65 1CM',
'STRIPLED HO 20W 24V 2.7K 280 LED IP65 1CM',
'STRIPLED 14.4W 24V 2.7K 180 LED IP65 1 CM',
Я пытался найти какой-нибудь символ и создать массив, например
Ожидаемый результат:
Array
(
[0] => Array
(
[power] => 9.6W 24V
[temp] => 2.7
[degrees] => IP20
)
[1] => Array
(
[power] => 9.6W 24V
[temp] => 3
[degrees] => IP20
)
[2] => Array
(
[power] => HO 12.3 W 24V
[temp] => 3
[degrees] => IP65
)
)
но яне может прийти к правильному решению.
Объясните: STRIPLED 9,6 Вт 24 В 2,7 К 120LED IP20 1 СМ
Здесь W & V означает мощность, K означает Temp, IP означает степень
Мой проверенный код:
<?php
$descriptions = [
'STRIPLED 9.6W 24V 2.7K 120LED IP20 1CM',
'STRIPLED 9.6W 24V 3K 120LED IP20 1CM',
'STRIPLED H 6 W 24V 4K 140 LED IP20 1CM',
'STRIPLED HO 12.3 W 24V 3K 128 LED IP65 1CM',
'STRIPLED HO 20W 24V 2.7K 280 LED IP65 1CM',
'STRIPLED 14.4W 24V 2.7K 180 LED IP65 1 CM',
];
$desc = [];
foreach($descriptions as $key=>$val){
$desc[$key]['power'] = strstr($val, 'V', true);
$desc[$key]['temp'] = strstr($val, 'K', true);
$desc[$key]['degrees'] = strstr($val, 'IP', true);
}
echo "<pre>";
print_r($desc).exit;
?>
Я вижу вывод такой:
Array
(
[0] => Array
(
[power] => STRIPLED 9,6W 24
[temp] => STRIPLED 9,6W 24V 2,7
[degrees] => STR
)
[1] => Array
(
[power] => STRIPLED 9,6W 24
[temp] => STRIPLED 9,6W 24V 3
[degrees] => STR
)
[2] => Array
(
[power] => STRIPLED H 6 W 24
[temp] => STRIPLED H 6 W 24V 4
[degrees] => STR
)
[3] => Array
(
[power] => STRIPLED HO 12,3 W 24
[temp] => STRIPLED HO 12,3 W 24V 3
[degrees] => STR
)
[4] => Array
(
[power] => STRIPLED HO 20W 24
[temp] => STRIPLED HO 20W 24V 2,7
[degrees] => STR
)
[5] => Array
(
[power] => STRIPLED 14,4W 24
[temp] => STRIPLED 14,4W 24V 2,7
[degrees] => STR
)
)
Может кто-нибудь дать мне решение для создания ожидаемого результата.
Спасибо