Maison >développement back-end >tutoriel php >帮我找一个php函数

帮我找一个php函数

WBOY
WBOYoriginal
2016-06-20 12:25:31774parcourir

印象中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 则可用于探测未知变量

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn