将两个字符串组合成一个关联数组



我有两个字符串:

$str1 = "type1|type2";
$str2 = "val1|val2";

我想把它们组合成一个数组。字符串的长度是动态的,但两个字符串中的元素数量(元素用|分隔)将始终相同。

$result = [
[
'type' => 'type1',
'val' => 'val1',
],
[
'type' => 'type2',
'val' => 'val2',
],
];

显而易见的解决方案是explode字符串并在它们之间循环。

可能没有一步到位的方法,但有没有更快/更有效的方法?

我会创建一个小的辅助函数来创建结果。

$typeString = "type1|type2";
$valString  = "val1|val2";
$result = splitTypeVal($typeString, $valString);
print_r($result);

function splitTypeVal($typeString, $valString)
{
$results = [];
$types  = explode("|", $typeString);
$values = explode("|", $valString);
$max    = max(count($types), count($values));
for ($i = 0; $i < $max; $i++) {
$results[] = [
"type"  => $types[$i] ?? null,
"value" => $values[$i] ?? null,
];
}
return $results;
}

打印

Array
(
[0] => Array
(
[type] => type1
[val] => val1
)
[1] => Array
(
[type] => type2
[val] => val2
)
)

相关内容

  • 没有找到相关文章

最新更新