数组函数20140909study

//今日内容

<?php
/*// 1、asort --对数组进行排序并保持索引关系
// bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
// 本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
结果:
c = apple
b = banana
d = lemon
a = orange*/

//----------------------------------------------------------------------------
/*// 2、count--计算数组中的单元数目或对象中的属性个数
// int count ( mixed $var [, int $mode = COUNT_NORMAL ] )
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result = count($b);
// $result == 3

$result = count(null);
// $result == 0

$result = count(false);
// $result == 1*/

//----------------------------------------------------------------------------
/*// 3、current --返回数组中的当前单元
// mixed current(array &$array)
// 每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元。
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }*/
//----------------------------------------------------------------------------
/*// 4、each --返回数组中当前的键/值对并将数组指针向前移动一步
// array each ( array &$array )
// 返回数组中当前的键/值对并将数组指针向前移动一步

// 在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用 reset()。
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);

结果:Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)*/


//----------------------------------------------------------------------------
/*// 5、end --将数组的内部指针指向最后一个单元
// mixed end (array &$array)
// end() 将 array 的内部指针移动到最后一个单元并返回其值。
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry*/
//----------------------------------------------------------------------------
/*// 6、extract --从数组中将变量导入到当前的符号表
// int extract ( array &$var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix = NULL ]] )
// 本函数用来将变量从数组中导入到当前的符号表中。

// 检查每个键名看是否可以作为一个合法的变量名,同时也检查和符号表中已有的变量名的冲突。
// var_array
// 一个关联数组。此函数会将键名当作变量名,值作为变量的值。 对每个键/值对都会在当前的符号表中建立变量,并受到 extract_type 和 prefix 参数的影响。

// 必须使用关联数组,数字索引的数组将不会产生结果,除非用了 EXTR_PREFIX_ALL 或者 EXTR_PREFIX_INVALID。

// extract_type
// 对待非法/数字和冲突的键名的方法将根据 extract_type 参数决定。可以是以下值之一:

// EXTR_OVERWRITE
// 如果有冲突,覆盖已有的变量。
// EXTR_SKIP
// 如果有冲突,不覆盖已有的变量。
// EXTR_PREFIX_SAME
// 如果有冲突,在变量名前加上前缀 prefix。
// EXTR_PREFIX_ALL
// 给所有变量名加上前缀 prefix。
// EXTR_PREFIX_INVALID
// 仅在非法/数字的变量名前加上前缀 prefix。
// EXTR_IF_EXISTS
// 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。 举个例子,以下情况非常有用:定义一些有效变量,然后从 $_REQUEST 中仅导入这些已定义的变量。
// EXTR_PREFIX_IF_EXISTS
// 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。
// EXTR_REFS
// 将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array 参数的值。可以单独使用这个标志或者在 extract_type 中用 OR 与其它任何标志结合使用。
// 如果没有指定 extract_type,则被假定为 EXTR_OVERWRITE。

// prefix
// 注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。 如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。前缀和数组键名之间会自动加上一个下划线。

// 返回成功导入到符号表中的变量数目。
$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";
结果:blue, large, sphere, medium*/
//----------------------------------------------------------------------------
/*// 7、in_array --检查数组中是否存在某个值
// bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
// 在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
结果:Got Irix*/
//----------------------------------------------------------------------------
/*// 8、range --建立一个包含指定范围单元的数组
// array range ( mixed $start , mixed $limit [, number $step = 1 ] )
// 建立一个包含指定范围单元的数组。

foreach (range(0, 12) as $number) {
    echo $number;
}
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)*/

//----------------------------------------------------------------------------
/*// 9、shuffle --将数组打乱
// bool shuffle(array &$array)
// 本函数打乱(随机排列单元的顺序)一个数组
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}

//4 16 14 7 3 20 18 12 1 10 13 8 17 15 5 6 2 11 19 9 随机顺序*/
//----------------------------------------------------------------------------
/*// 10、sort --对数组进行排序
// bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
// 本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。
// array
// 要排序的数组。

// sort_flags
// 可选的第二个参数 sort_flags 可以用以下值改变排序的行为:

// 排序类型标记:

// SORT_REGULAR - 正常比较单元(不改变类型)
// SORT_NUMERIC - 单元被作为数字来比较
// SORT_STRING - 单元被作为字符串来比较
// SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
// SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。
// SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}
结果:
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange*/
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值