【发布时间】:2014-06-13 09:08:59
【问题描述】:
我在尝试将一组数据转换为第三方服务所需的格式时遇到了麻烦。我无法更改数据进入函数的方式,因此我需要对其进行操作然后将其发送出去。我已经设法将其破解为几乎正确的状态,除了它只取数组的第一个值而忽略其余部分。我认为这是因为我正在覆盖这些值,但我不知道如何解决它。
我对 PHP 很陌生,我认为我在这里缺少一些核心数组方法或其他东西,所以任何输入都将不胜感激
进入函数的数据($data)
大批 ( [checkbox_customfield_11363] => 数组 ( [随机未知字符串] => 苹果 [随机未知字符串] => 橙色 [随机未知字符串] => 香蕉 ) [checkbox_customfield_11339] => 数组 ( [随机未知字符串] => 豌豆 [随机未知字符串] => 土豆 ) )应该将数据转换为所需格式的函数。第一个 foreach 循环只是删除了每个数组名称的第一部分,它按预期工作 - 虽然可能不是最干净的。它是我正在努力解决的第二个 foreach 及以下。
public function createCheckBoxField($data)
{
$checkbox_matches = array();
foreach ($data as $key => $value) {
if (preg_match("/checkbox/", $key)) {
$newKey = explode('_', $key, 2);
$checkbox_matches[$newKey[1]] = $value;
}
}
$checkboxes = array();
foreach ($checkbox_matches as $key1 => $value1) {
foreach ($value1 as $test) {
$checkboxes += [$key1 => [["value" => $test]]];
}
}
return $checkboxes;
}
代码当前返回
大批 ( [customfield_11363] => 数组 ( [0] => 数组 ( [价值] => 苹果 ) ) [customfield_11339] => 数组 ( [0] => 数组 ( [价值] => 豌豆 ) ) )我需要它返回
大批 ( [customfield_11363] => 数组 ( [0] => 数组 ( [价值] => 苹果 ) [1] => 数组 ( [值] => 橙色 ) [2] => 数组 ( [价值] => 香蕉 ) ) [customfield_11339] => 数组 ( [0] => 数组 ( [价值] => 豌豆 ) [1] => 数组 ( [价值] => 马铃薯 ) ) )【问题讨论】:
-
您没有提供输入数据。如果您在 stackoverflow 上提问,请使用尽可能少的代码从头开始创建示例,以演示包含所有数据以重现问题的问题。
-
第一个代码块是输入数据。
-
第一个代码块根本就没有代码。这是一个语法错误。它也没有正确指定输入数组,因为它不明确。
-
这不是语法错误,它是无法修改的值 $data 的转储 (print_r)。 $data 是输入数据。
-
print_r不会以无语法错误的方式输出,var_export会。接下来,这是 not prin_r 输出,您对其进行了编辑,使其无法使用。但是您似乎对学习有抵抗力,以至于您对我的 cmets 承担所有坏事。你或许应该想想我为什么要发表评论。