回答:
いいえ、array_push()
次のキーを決定する方法がないため、連想配列に相当するものはありません。
使用する必要があります
$arrayname[indexname] = $value;
$arrayname = array('indexname1' => $value1, 'indexname2' => $value2);
はそれらをの唯一のアイテムとして設定します$arrayname
。すでに$arrayname
設定していて、その値を保持したい場合は、を試してください$arrayname += $anotherarray
。最初の配列の既存のキーは2番目の配列によって上書きされることに注意してください。
$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.phparray_merge
のドキュメントにあります。
array_merge()
and +
演算子の基本的な違いは、2つの配列に同じキーの値が含まれている場合、演算子は+
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
あり、配列ユニオン(+=
)が逆の動作をする場合、つまり、array_mergeは2番目の配列の値を尊重し、配列ユニオンは最初の配列の値を尊重します。
これはあなたに役立つかもしれないソリューションです
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(key)&value(value)を取得し、上記のようにpushを使用せずに、同じkey / valueを使用して、settingsと呼ばれる配列に配置します。
本当に簡単でシンプル
//すべての設定を取得 $ settings = getGlobalSettings(); //ユーザーテーマの選択を適用します $ theme_choice = $ settings ['theme']; .. etc etc etc .... 関数getGlobalSettings(){ $ dbc = mysqli_connect(wds_db_host、wds_db_user、wds_db_pass)またはdie( "MySQL Error:"。mysqli_error()); mysqli_select_db($ dbc、wds_db_name)またはdie( "MySQL Error:"。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)rotection、つまり、Programming for Dummies、つまり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>";
}
簡単な方法:
$GET = array();
$key = 'one=1';
parse_str($key, $GET);
ここにはすでにいくつかの素晴らしい例があります。連想配列要素をルート数値インデックスインデックスにプッシュする簡単な例を追加するだけです。
`$intial_content = array();
if (true) {
$intial_content[] = array('name' => 'xyz', 'content' => 'other content');
}`