Відповіді:
Ні, немає жодного 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"]
буде "Джон"
Натискання значення на масив автоматично створює для нього числовий ключ.
Коли ви додаєте пару ключових значень до масиву, у вас вже є ключ, вам не потрібно його створювати. Натискання клавіші на масив не має сенсу. Ви можете встановити лише значення конкретного ключа в масиві.
// no key
array_push($array, $value);
// same as:
$array[] = $value;
// key already known
$array[$key] = $value;
Ви можете використовувати оператор об'єднання ( +
) для об'єднання масивів та збереження ключів доданого масиву. Наприклад:
<?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);
.
Більше інформації про використання оператора профспілки порівняно array_merge
з документацією на http://php.net/manual/en/function.array-merge.php .
array_merge()
і +
оператором полягає в тому, що два масиви містять значення одного і того ж ключа, +
оператор ігнорує значення з другого масиву (не переосмислює), також він не перенумеровує / переносить чисельні клавіші ...
Я хотів би додати свою відповідь до таблиці, і ось вона:
//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 буде поважати значення з другого масиву, а об'єднання масиву буде поважати значення з першого масиву.
Це рішення, яке може бути корисним для u
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 так само, як вище.
Дуже легко і просто насправді
// Отримати всі налаштування $ settings = getGlobalSettings (); // Застосувати вибір теми користувача $ topic_choice = $ settings ['тема']; .. і т. д. і т. д. .... функція getGlobalSettings () { $ dbc = mysqli_connect (wds_db_host, wds_db_user, wds_db_pass) або померти ("Помилка 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 ($ результат)) { $ settings [$ row ['item']] = $ row ['value']; // НЕ ТРЕБА ДЛЯ ПІШКУ } mysqli_close ($ dbc); повернути $ налаштування; }
Так, як і інші публікації пояснюють ... У php немає необхідності "PUSH" масив, коли ви використовуєте
Ключ => Значення
І ... Не потрібно спочатку визначати масив.
$ array = array ();
Не потрібно визначати чи натискати. Просто призначте $ array [$ key] = $ value; Це автоматично поштовх і декларація одночасно.
Я мушу додати, що з міркувань безпеки, (P) або (H) безлайн (P) ротація, я маю на увазі Програмування для манекенів, я маю на увазі PHP .... Будь-який інший метод може становити загрозу безпеці. Там зробили мою відмову!
array_push($arr, ['key1' => $value1, 'key2' => value2]);
Це працює просто чудово. створює ключ із його значенням у масиві
$arr
масиву.
Трохи пізно, але якщо ви не заперечуєте вкладений масив, ви можете скористатися таким підходом:
$main_array = array(); //Your array that you want to push the value into
$value = 10; //The value you want to push into $main_array
array_push($main_array, array('Key' => $value));
Для уточнення, якщо ви виведете json_encode ($ main_array), який буде мати вигляд [{"Key": "10"}]
Трохи дивно, але це працювало для мене
$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);
Щоб натиснути "клавішу" та "значення" на існуючий масив, ви можете скористатися +=
оператором швидкого доступу.
Дивіться цей дуже простий приклад:
$GET = [];
$GET += ['one' => 1];
Результатом print_r($GET)
буде:
Array
(
[one] => 1
)
Приклад array_merge () ....
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
Масив ([колір] => зелений, [0] => 2, [1] => 4, [2] => а, [3] => b, [форма] => трапеція, [4] => 4 ,)
Тут уже наводиться чудовий приклад. Просто додаючи простий приклад для підштовхування елементів асоціативного масиву до кореневого індексу числового індексу.
`$intial_content = array();
if (true) {
$intial_content[] = array('name' => 'xyz', 'content' => 'other content');
}`