【发布时间】:2020-12-26 18:59:52
【问题描述】:
我正在围绕存储在 API 中的数组的理论场景构建算法,这意味着我不允许编辑它,我正在尝试从所述数组中获取数据并使用内爆和爆炸功能。我已经取得了不错的进展,这是我目前为止的代码……
<?php
$arr = array(
"action: Added; quantity: 1; item_code: RNA1; product_name: Mens Organic T-shirt; colour: White; size: XL",
"action: Subtracted; quantity: 7; item_code: RNC1; product_name: Kids Basic T-shirt; colour: Denim Blue; size: 3-4y",
"action: Added; quantity: 20; item_code: RNV1; product_name: Gift Voucher; style: Mens; value: £20",
);
// Split the array into strings.
$imploded1 = implode("; ", $arr);
//echo $imploded;
// Seperate the strings by the ";" character.
$exploded1 = explode("; ",$imploded1);
// This gives me the keys and pairs in the same index.
$imploded2 = implode("\n", $exploded1);
// print_r($formatimploded);
$result = array_column(array_map(function($v) {
return explode(":", $v);
}, explode(" ", $imploded2)), 1, 0);
print_r($result);
该程序几乎可以运行。我遇到的问题是键的值没有被添加到数组中,我不确定这是为什么。这是输出:
Array
(
[action] =>
[quantity] =>
[item_code] =>
[product_name] =>
[colour] =>
[size] =>
[style] =>
[value] =>
)
谁能给我解释一下?非常感谢任何帮助。
【问题讨论】:
-
听起来你需要 JSON。 JSON 基本上是一个写成字符串的数组。
-
您已经有 4 个答案可以解决您的问题。把它复杂化有什么意义?
-
当我运行您的代码时,我没有得到与您相同的结果。我得到了一些值,但在索引名称内。
标签: php arrays key-value explode implode