我正试图破坏其键和值的数组。我可以很容易地获得内爆的钥匙,但发现我必须重复自己的钥匙。
目前我这样做:
$values = array(
'id' => $sel['id'],
'creator_id' => $sel['creator_id'],
'campaign_id' => $sel['campaign_id'],
'save_results' => $sel['save_results'],
'send_results_url' => $sel['send_results_url'],
'reply_txt' => $sel['reply_txt'],
'allow_multiple_votes' => $sel['allow_multiple_votes']
);
$cols = '';
$vals = '';
$first = true;
foreach($values as $col => $val) {
if(!$first) {
$cols .= ', ';
$vals .= ', ';
}
$cols .= $col;
$vals .= $val;
$first = false;
}
困扰我的部分是:
foreach($values as $col => $val) {
if(!$first) {
$cols .= ', ';
$vals .= ', ';
}
$cols .= $col;
$vals .= $val;
$first = false;
}
有没有办法内爆数组键?
例如,我可以做
$vals = implode(', ', $values);
要破坏这些值,但我也需要为密钥执行此操作。
我也可以使用
$keys = array();
foreach($values as $col => $val)
$keys[] = $col;
$cols = implode(', ', $keys);
$rows = implode(', ', $values);
但它仍然需要我循环创建另一个数组,肯定有更好的方法,只需要获取密钥?
答案 0 :(得分:30)
$cols = implode(', ',array_keys($values));
答案 1 :(得分:2)
此函数将从多维数组中提取键
<?php
function multiarray_keys($ar) {
foreach($ar as $k => $v) {
$keys[] = $k;
if (is_array($ar[$k]))
$keys = array_merge($keys, multiarray_keys($ar[$k]));
}
return $keys;
}
?>
答案 2 :(得分:-1)
print_r($values,true);
然后从结果中删除前两行和最后一行:
Array
(
[foo] => bar
[baz] => boom
)