Heim >Backend-Entwicklung >PHP-Tutorial >帮我找一个php函数

帮我找一个php函数

WBOY
WBOYOriginal
2016-06-20 12:25:31773Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn