看看这段代码:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
我正在寻找这样的东西:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
有函数来做这个吗?(因为array_push不能这样工作)
看看这段代码:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
我正在寻找这样的东西:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
有函数来做这个吗?(因为array_push不能这样工作)
当前回答
不,关联数组没有等价的array_push(),因为没有办法确定下一个键。
你必须使用
$arrayname[indexname] = $value;
其他回答
佩卡就是这么说的…
或者,你也可以像这样使用array_merge:
array_merge($_GET, array($rule[0] => $rule[1]));
但我更喜欢Pekka的方法,因为它更简单。
array_push($GET, $GET['one']=1);
这对我很管用。
这里已经给出了一些很好的例子。只是添加了一个简单的例子,将关联数组元素推到根数值索引索引。
$intial_content = array();
if (true) {
$intial_content[] = array('name' => 'xyz', 'content' => 'other content');
}
我只是在寻找同样的东西,然后我又一次意识到,我的想法是不同的,因为我是守旧派。我一直在用BASIC和PERL,有时我忘记了PHP有多简单。
我刚刚做了这个函数,以采取所有设置从数据库,其中他们是3列。Setkey, item (key) & value (value),并将它们放入一个名为Settings的数组中,使用相同的键/值,而不像上面那样使用push。
真的很简单
// Get All Settings $settings=getGlobalSettings(); // Apply User Theme Choice $theme_choice = $settings['theme']; .. etc etc etc .... function getGlobalSettings(){ $dbc = mysqli_connect(wds_db_host, wds_db_user, wds_db_pass) or die("MySQL Error: " . mysqli_error()); mysqli_select_db($dbc, wds_db_name) or 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']; // NO NEED FOR PUSH } mysqli_close($dbc); return $settings; }
所以就像其他帖子解释的那样……在php中,当你使用数组时,不需要“PUSH”数组
Key =>值
和…也不需要先定义数组。
$array=数组();
不需要定义或强迫。赋值$array[$key] = $value;它自动同时是一个推送和一个声明。
我必须补充一点,出于安全原因,(P)oor (H)elpless (P)保护,我的意思是为傻瓜编程,我的意思是PHP....呵呵,我建议你只用这个概念来表达我的意图。任何其他方法都可能存在安全风险。在那里,我做了免责声明!
我通常这样做:
$array_name = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);