1
我有一个网站在PHP中开发,我有一个函数,我想在其他数组内创建一个数组。 我的查询是这样的(我使用cakephp,但在这种情况下只是一个数组问题,不要告诉我使用包含或类似的东西从cakephp,因为是一个大的查询,我需要构造我的查询和我的数组在这种模式下)推阵列在另一个阵列
我的数组$ product_ingredient包含一些值。
foreach ($product_ingredient as $key) {
$ingredient_level1 = $this->ProductIngredientVersion->query('SELECT * FROM ingredients_ingredients
WHERE ingredients_ingredients.ingredient_id = :ingredient_id
AND ingredients_ingredients.product_id = :id
AND ingredients_ingredients.version_id = :version_id
AND ingredients_ingredients.level = 1', array('id' => $id, 'ingredient_id' => $key['products_ingredients']['ingredient_id'], 'version_id' => $key['products_ingredients']['version_id']));
foreach($ingredient_level1 as $key2){
$ingredient_level2 = array($this->ProductIngredientVersion->query('SELECT * FROM ingredients_ingredients
WHERE ingredients_ingredients.ingredient_id = :ingredient_id
AND ingredients_ingredients.product_id = :id
AND ingredients_ingredients.version_id = :version_id
AND ingredients_ingredients.level = 2', array('id' => $id, 'ingredient_id' => $key2['ingredients_ingredients']['ingredient2_id'], 'version_id' => $key2['ingredients_ingredients']['version_id'])));
array_push($ingredient_level1, $ingredient_level2);
}
array_push($ingredient_ingredient, $ingredient_level1);
}
结果是:
array(
(int) 0 => array(
(int) 0 => array(
'ingredients_ingredients' => array(
'id' => '34',
'level' => '1'
)
),
(int) 1 => array(
(int) 0 => array(
(int) 0 => array(
'ingredients_ingredients' => array(
'id' => '35',
'level' => '2'
)
)
)
)
)
但我想这个结果
array(
(int) 0 => array(
(int) 0 => array(
'ingredients_ingredients' => array(
'id' => '34',
'level' => '1',
array(
'ingredients_ingredients' => array(
'id' => '35',
'level' => '2'
)
)
)
)
我该如何解决?
你在寻找'array_merge'(http://php.net/manual/en/function.array-merge.php)吗?我不确定你要用样本数组去做什么,因为你要创建的数组是无效的(多个键名相同,等等) – 2013-02-20 22:43:47
array_merge只追加数组我想要数组在另一个数组内@Dave – 2013-02-20 22:46:17
在你想要的结果代码中,我相信你有一个额外的数组('修改后的'行',并且应该用一个逗号代替它)正确吗? – DACrosby 2013-02-20 22:48:05