Answers:
不,array_push()
关联数组没有等效项,因为无法确定下一个键。
您必须使用
$arrayname[indexname] = $value;
$arrayname = array('indexname1' => $value1, 'indexname2' => $value2);
会将其设置为中的唯一项$arrayname
。如果您已经$arrayname
设置并且想要保留其值,请尝试$arrayname += $anotherarray
。请记住,第一个数组中的任何现有键都将被第二个覆盖。
$a = array("name" => "John"); $a += array("name" => "Tom");
那么$a["name"]
将是“约翰”
您可以使用联合运算符(+
)合并数组并保留添加的数组的键。例如:
<?php
$arr1 = array('foo' => 'bar');
$arr2 = array('baz' => 'bof');
$arr3 = $arr1 + $arr2;
print_r($arr3);
// prints:
// array(
// 'foo' => 'bar',
// 'baz' => 'bof',
// );
所以你可以做 $_GET += array('one' => 1);
。
与http://php.net/manual/en/function.array-merge.php上array_merge
的文档相比,有更多关于联合运算符用法的信息。
array_merge()
和+
运算符之间的基本区别是,当2个数组包含同一键上的值时,+
运算符将忽略第二个数组中的值(不覆盖),也不会对数字键进行重新编号/重新索引...
我想将我的答案添加到表中,这里是:
//connect to db ...etc
$result_product = /*your mysql query here*/
$array_product = array();
$i = 0;
foreach ($result_product as $row_product)
{
$array_product [$i]["id"]= $row_product->id;
$array_product [$i]["name"]= $row_product->name;
$i++;
}
//you can encode the array to json if you want to send it to an ajax call
$json_product = json_encode($array_product);
echo($json_product);
希望这会帮助某人
我想知道为什么尚未发布最简单的方法:
$arr = ['company' => 'Apple', 'product' => 'iPhone'];
$arr += ['version' => 8];
array_merge
并且数组union(+=
)的行为相反,即array_merge将尊重第二个数组的值,而数组union将尊重第一个数组的值。
这是可能对您有用的解决方案
Class Form {
# Declare the input as property
private $Input = [];
# Then push the array to it
public function addTextField($class,$id){
$this->Input ['type'][] = 'text';
$this->Input ['class'][] = $class;
$this->Input ['id'][] = $id;
}
}
$form = new Form();
$form->addTextField('myclass1','myid1');
$form->addTextField('myclass2','myid2');
$form->addTextField('myclass3','myid3');
array (size=3)
'type' =>
array (size=3)
0 => string 'text' (length=4)
1 => string 'text' (length=4)
2 => string 'text' (length=4)
'class' =>
array (size=3)
0 => string 'myclass1' (length=8)
1 => string 'myclass2' (length=8)
2 => string 'myclass3' (length=8)
'id' =>
array (size=3)
0 => string 'myid1' (length=5)
1 => string 'myid2' (length=5)
2 => string 'myid3' (length=5)
我只是在寻找同一件事,所以我又一次意识到,我的思想有所不同,因为我是高中生。我一直回到BASIC和PERL,有时我忘记了PHP真的很简单。
我刚刚进行了此功能,以从数据库中包含3列的所有设置中获取所有设置。setkey,item(键)和value(值),然后使用相同的键/值将它们放入名为settings的数组中,而无需像上面那样使用push。
真的很简单
//获取所有设置 $ settings = getGlobalSettings(); //应用用户主题选择 $ theme_choice = $ settings ['theme']; .. etc etc etc .. 函数getGlobalSettings(){ $ dbc = mysqli_connect(wds_db_host,wds_db_user,wds_db_pass)或die(“ MySQL错误:”。mysqli_error()); mysqli_select_db($ dbc,wds_db_name)或die(“ MySQL错误:”。mysqli_error()); $ MySQL =“ SELECT * FROM systemSettings”; $ result = mysqli_query($ dbc,$ MySQL); while($ row = mysqli_fetch_array($ result)) { $ settings [$ row ['item']] = $ row ['value']; //不需要推送 } mysqli_close($ dbc); 返回$ settings; }
因此,就像其他帖子解释的那样...在php中,使用时无需“推送”数组
键=>值
AND ...也无需先定义数组。
$ array = array();
无需定义或推送。只需分配$ array [$ key] = $ value; 它同时自动是一个推和一个声明。
为了安全起见,我必须补充一点,(P)oor(H)elpless(P)retection,我的意思是“傻瓜编程”,我的意思是PHP...。任何其他方法都可能带来安全风险。在那里,我发表了免责声明!
array_push($arr, ['key1' => $value1, 'key2' => value2]);
这样很好。用数组中的值创建键
$arr
数组的末尾。
有点奇怪,但这对我有用
$array1 = array("Post Slider", "Post Slider Wide", "Post Slider");
$array2 = array("Tools Sliders", "Tools Sliders", "modules-test");
$array3 = array();
$count = count($array1);
for($x = 0; $x < $count; $x++){
$array3[$array1[$x].$x] = $array2[$x];
}
foreach($array3 as $key => $value){
$output_key = substr($key, 0, -1);
$output_value = $value;
echo $output_key.": ".$output_value."<br>";
}
您好,我遇到了同样的问题,我找到了这个解决方案,您应该使用两个数组,然后将两者组合
<?php
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");
$c=array_combine($fname,$age);
print_r($c);
?>
参考:w3schools
简单的方法:
$GET = array();
$key = 'one=1';
parse_str($key, $GET);
这里已经给出了一些很好的例子。只需添加一个简单的示例即可将关联数组元素推入根数字索引index。
`$intial_content = array();
if (true) {
$intial_content[] = array('name' => 'xyz', 'content' => 'other content');
}`