首頁 > 後端開發 > php教程 > 帮我找一个php函数

帮我找一个php函数

WBOY
發布: 2016-06-20 12:25:31
原創
813 人瀏覽過

印象中PHP有这么一个函数:

$a = 1;$b = 2;$array = xxxx($a,$b);
登入後複製

结果返回的数组为
array(
'a' => 1,
'b' => 2
)
也就是把变量名称作为键名

每当遇到这种问题,我给搜索引擎跪了~



回复讨论(解决方案)

你为什么不直接这样,就不需要那个函数了
$arr = array();
$arr['a'] = 1;
$arr['b'] = 2;

你为什么不直接这样,就不需要那个函数了
$arr = array();
$arr['a'] = 1;
$arr['b'] = 2;


找到了
至于为什么~
$a = 1;$b = 2;$c = 3;$array1 = compact('a', 'b', 'c');$array2 = array('a'=>$a, 'b'=>$b, 'c'=>$c);
登入後複製

你觉得哪个比较好写

该是数组的,一开始就没必要初始化成变量。

$a = 1;
$b = 2;
$c = 3;
$array1 = compact('a', 'b', 'c');
这样用了4行

$array2 = array('a'=>1, 'b'=>2, 'c'=>3);
这样只需要一行

$arr = array();
$arr['a'] = 1;
$arr['b'] = 2;
$arr['c'] = 3;
即使是这样,也是4行没差。

需要的时候用$arr['b']这样读就行了,根本不需要$b这个变量
除非$arr['b']['c']['d'] 这样很长,又多次使用的时候才存一个变量简化一下代码。

但是不得不承认确实忘了有compact这个函数

该是数组的,一开始就没必要初始化成变量。

$a = 1;
$b = 2;
$c = 3;
$array1 = compact('a', 'b', 'c');
这样用了4行

$array2 = array('a'=>1, 'b'=>2, 'c'=>3);
这样只需要一行

$arr = array();
$arr['a'] = 1;
$arr['b'] = 2;
$arr['c'] = 3;
即使是这样,也是4行没差。

需要的时候用$arr['b']这样读就行了,根本不需要$b这个变量
除非$arr['b']['c']['d'] 这样很长,又多次使用的时候才存一个变量简化一下代码。


前面三个变量那是前提条件啊,都只是一行而已吧
目的是把变量组成数组,就为了这个数组,你会去改变前边已有的源码吗。要是过程繁杂,都懒得看。只知道结果有一些变量,现在要组成数组。否则当然直接写成数组啦,谁没事找事做啊

$a = 1;$b = 2;$c = 3;$t = array_diff_key(get_defined_vars(), array_flip(array('_GET', '_POST', '_COOKIE', '_FILES')));print_r($t);
登入後複製
登入後複製
Array(    [a] => 1    [b] => 2    [c] => 3)
登入後複製
登入後複製

$a = 1;$b = 2;$c = 3;$t = array_diff_key(get_defined_vars(), array_flip(array('_GET', '_POST', '_COOKIE', '_FILES')));print_r($t);
登入後複製
登入後複製
Array(    [a] => 1    [b] => 2    [c] => 3)
登入後複製
登入後複製


够暴力

其实你用 compact 是有前提的:至少需要知道变量名
用 array_combine de 的话,则有可能打乱原有的成员顺序
而 get_defined_vars 则可用于探测未知变量

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板