php 源码 数组函数,php5.5新数组函数array-column使用实例

php5.5新数组函数array-column使用实例

导语:PHP5.5发布了,其中增加了一个新的数组函数array_column。下面的.是百分网小编为大家搜集的php5.5新数组函数array_column使用实例,希望对你有所帮助。

复制代码 代码如下:

if(!function_exists('array_column')){

function array_column($input, $columnKey, $indexKey=null){

$columnKeyIsNumber      = (is_numeric($columnKey)) ? true : false;

$indexKeyIsNull         = (is_null($indexKey)) ? true : false;

$indexKeyIsNumber       = (is_numeric($indexKey)) ? true : false;

$result                 = array();

foreach((array)$input as $key=>$row){

if($columnKeyIsNumber){

$tmp            = array_slice($row, $columnKey, 1);

$tmp            = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;

}else{

$tmp            = isset($row[$columnKey]) ? $row[$columnKey] : null;

}

if(!$indexKeyIsNull){

if($indexKeyIsNumber){

$key        = array_slice($row, $indexKey, 1);

$key        = (is_array($key) && !empty($key)) ? current($key) : null;

$key        = is_null($key) ? 0 : $key;

}else{

$key        = isset($row[$indexKey]) ? $row[$indexKey] : 0;

}

}

$result[$key]       = $tmp;

}

return $result;

}

}

// 使用例子

$records = array(

array(

'id' => 2135,

'first_name' => 'John',

'last_name' => 'Doe'

),

array(

'id' => 3245,

'first_name' => 'Sally',

'last_name' => 'Smith'

),

array(

'id' => 5342,

'first_name' => 'Jane',

'last_name' => 'Jones'

),

array(

'id' => 5623,

'first_name' => 'Peter',

'last_name' => 'Doe'

)

);

$firstNames = array_column($records, 'first_name');

print_r($firstNames);

/*

Array

(

[0] => John

[1] => Sally

[2] => Jane

[3] => Peter

)

*/

$records = array(

array(1, 'John', 'Doe'),

array(2, 'Sally', 'Smith'),

array(3, 'Jane', 'Jones')

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 PHP 数组出牌的一段简单代码示例: ``` function checkCards($cards) { $card_count = count($cards); if ($card_count == 0) { return false; // 不能出空牌 } // 判断是否是炸弹 if ($card_count == 4) { $card_num = substr($cards[0], 1); if ($card_num == substr($cards[1], 1) && $card_num == substr($cards[2], 1) && $card_num == substr($cards[3], 1)) { if ($card_num == 2) { return false; // 不能出炸弹 } else { return true; // 出炸弹 } } } // 判断是否是同类型牌 $card_type = substr($cards[0], 0, 1); for ($i = 1; $i < $card_count; $i++) { if (substr($cards[$i], 0, 1) != $card_type) { return false; // 不同类型的牌不能出 } } // 判断大小顺序 for ($i = 0; $i < $card_count - 1; $i++) { $card_num1 = substr($cards[$i], 1); $card_num2 = substr($cards[$i+1], 1); if ($card_num1 <= $card_num2) { return false; // 大小顺序不对不能出 } } return true; } // 测试 $last_cards = array('D10', 'D9', 'D8'); // 上一手牌 $current_cards = array('C10', 'C9', 'C8'); // 当前手牌 if (checkCards($current_cards) && compare($current_cards[0], $last_cards[0])) { echo '出牌成功'; } else { echo '出牌失败'; } ``` 这段代码实现了从数组中取出多张牌,比较牌的大小和类型,判断是否可以出牌。其中,`checkCards` 函数接受一个参数,即一个牌组的数组,返回值为布尔类型,表示是否可以出牌。如果返回 `true`,则可以出牌;如果返回 `false`,则不能出牌。 需要注意的是,这段代码实现了多张牌的出牌判断,同时也处理了牌型和大小相同但是花色不同的情况。在判断是否可以出牌时,需要先调用比较两张牌大小的 `compare` 函数,如果两张牌大小相同,则需要比较牌型和类型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值