我需要创建一个如下所示的数组:
$va_body=array(
"bundles" => array(
"$table.$elem" => array("convertCodesToDisplayText" => true),
"$table.$elem" => array("convertCodesToDisplayText" => true),
)
);
$table
是一个不会更改的字符串,并且从数组中提取$elem
。
我接近以下代码,但最终只有$bund
的最后一个值,$bund
是一个包含两个值的数组。我猜这个数组在每个循环中都被重新声明了吗?
$va_body=array(); // declare the array outside the loop
foreach ($bund as $elem ) {
$va_body['bundles'] = array($table.".".$elem=>array("convertCodesToDisplayText" => true));
}
$bund
数组有两个元素" description"和" type_id"。
$va_body['bundles'][] // Adding [] doesn't work as it modifies the expected outcome.
print_r($va_body)
看起来像这样:
Array (
[bundles] => Array (
[ca_objects.type_id] => Array (
[convertCodesToDisplayText] => 1
)
)
)
我需要它:
Array (
[bundles] => Array (
[ca_objects.description] => Array (
[convertCodesToDisplayText] => 1
)
[ca_objects.type_id] => Array (
[convertCodesToDisplayText] => 1
)
)
)
提前致谢。
@ phpisuber01 使用:
$va_body['bundles'][] = array($table.".".$elem=>array("convertCodesToDisplayText" => true));
print_r($va_body);
看起来像这样:
Array (
[bundles] => Array (
[0] => Array (
[ca_objects.description] => Array (
[convertCodesToDisplayText] => 1
)
)
[1] => Array (
[ca_objects.type_id] => Array (
[convertCodesToDisplayText] => 1
)
)
)
)
我需要它像这样:
Array (
[bundles] => Array (
[ca_objects.description] => Array (
[convertCodesToDisplayText] => 1
)
[ca_objects.type_id] => Array (
[convertCodesToDisplayText] => 1
)
)
)
回答@ phpisuber01:
$va_body['bundles'][$table.".".$elem] = array("convertCodesToDisplayText" => true);
非常感谢!
答案 0 :(得分:1)
您需要创建一个数组数组。在循环中更改以下行:
$va_body['bundles'][$table.".".$elem] = array("convertCodesToDisplayText" => true);
在[]
之后添加$va_body['bundles']
。
所有这一切都是继续将新的包添加到数组中。您的原始代码每次迭代都会覆盖bundle。这就是为什么你只得到最后一个。
更新以更接近OP的确切需求。
答案 1 :(得分:0)
$va_body = array();
$va_body['bundles'] = array();
foreach ($bund AS $elem)
{
$va_body['bundles']["{$table}.{$elem}"] = array("convertCodesToDisplayText" => true);
}