답변:
아니, 전혀 없다 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.phparray_merge
의 문서에 통합 연산자 사용법에 대한 자세한 정보가 있습니다 .
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는 두 번째 배열의 값을 존중하고 배열 공용체는 첫 번째 배열의 값을 존중합니다.
이것은 당신에게 유용 할 수있는 솔루션입니다
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라는 배열에 배치하십시오.
아주 쉽고 간단합니다
// 모든 설정 가져 오기 $ settings = getGlobalSettings (); // 사용자 테마 선택 적용 $ theme_choice = $ settings [ 'theme']; 등 .... 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); 반환 $ 설정; }
따라서 다른 게시물처럼 설명합니다 ... PHP에서는 사용할 때 배열을 "PUSH"할 필요가 없습니다.
키 => 값
AND ... 배열을 먼저 정의 할 필요가 없습니다.
$ array = array ();
정의하거나 푸시 할 필요가 없습니다. 그냥 $ array [$ key] = $ value; 자동으로 푸시와 선언입니다.
나는 보안상의 이유로 (P) oor (H) elpless (P) rotection을 추가해야한다. 나는 Dummies를위한 프로그래밍을 의미한다. 나는 PHP를 의미한다. 다른 방법은 보안 위험이 될 수 있습니다. 거기, 내 면책 조항을 만들었습니다!
조금 이상하지만 이것은 나를 위해 일했습니다.
$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);