【问题标题】:what is the differenet between two array functions in php [closed]php中的两个数组函数有什么区别[关闭]
【发布时间】:2014-07-31 08:03:19
【问题描述】:

请看下面的数组

$array1 = array("b" => "boy", "c" => "cat", "A"=>"boy");

现在我要在这里使用array_flip函数

array_flip($array1); // I am going to print it in next line
print_r($array1) // but array flip has not been worked 

查看下一个名为ksort的函数

ksort($array1) // called first then print in next line
print_r($array1);

现在它将按键值升序打印值

所以我的问题是array_flipksort 函数有什么区别

因为我在打印之前调用了这两个函数,一个有效,另一个没有。

请帮帮我。

提前致谢。

【问题讨论】:

  • rtfm. array flip 将数组中的键与值交换,ksort 按键对数组进行排序。
  • 您还需要重新分配数组翻转值...$array = array_flip($array); 否则它什么也不做
  • 参见手册:array_flipksort。它解释了修改参数和返回结果之间的区别。
  • 这个问题似乎离题了,因为它没有显示任何研究工作。

标签: php arrays sorting


【解决方案1】:

array_flip 是一个函数,它接受一个数组作为参数并返回 一个更改后的数组。
ksort 是一个接受其数组参数的函数,通过引用 并就地改变数组。

array_flip 产生一个新值而不改变其输入值,ksort 直接改变其输入值。在你的情况下,由于你没有对array_flip 的返回值做任何事情,它只是被丢弃并且你没有看到效果。

【讨论】:

    【解决方案2】:

    查看这些函数在 PHP 文档中的描述方式

    array array_flip ( array $array )
      ^
      |
     Means that function returns an array
    

    bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
      ^                ^
      |                |
      |               Means argument is passed by reference, and the original argument will be changed
    Means function returns a boolean
    

    【讨论】:

    • 天哪,我错过了一件大事,非常感谢你让我意识到下次我会记住它。通过引用传递真的是一件大事。还有一件事需要问你,当我发现任何返回布尔值的函数将接受第一个争论变量作为通过引用传递时,我可以随时假设。或者每次需要查看具体功能的文档
    • 不,你不能做出这样的假设,因为很多函数返回一个布尔值但不使用引用传递(例如 is_numeric())......总是值得检查文档,或使用告诉您这一点的 IDE;但随着时间的推移,您会了解您最常使用的功能的详细信息
    • 非常感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多