php实现多维数组中每个单元值(数字)翻倍的方法

 这篇文章主要介绍了php实现多维数组中每个单元值(数字)翻倍的方法,涉及php操作数组的技巧,需要的朋友可以参考下

 
 

本文实例讲述了php实现多维数组中每个单元值(数字)翻倍的方法。分享给大家供大家参考。具体分析如下:

前提:一个多维数组,它的每个最小单元值都为数字。
要求:写一个函数,将最小单元值翻倍。

代码如下

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<?php
$arr = array(1,3,'a'=>20,'b'=>array(2,4,6,'c'=>7));
function arr2($arr){
foreach($arr as $key=>$v){
if(!is_array($v)){
$arr[$key] *= 2;
}else{
$arr[$key] = arr2($arr[$key]);
}
}
return $arr;
}
echo "<pre>";
print_r(arr2($arr));
?>

利用系统提供的函数来解决,方法如下:

?

1
2
3
4
5
6
7
8
9

<?php
$arr = array(1,3,'a'=>20,'b'=>array(2,4,6,'c'=>7));
function t(&$arr){
$arr *= 2;
}
echo "<pre>";
array_walk_recursive($arr,'t');
print_r($arr);
?>

希望本文所述对大家的php程序设计有所帮助。

时间: 2024-11-03 20:55:21

php实现多维数组中每个单元值(数字)翻倍的方法的相关文章

php实现多维数组中每个单元值(数字)翻倍的方法_php技巧

本文实例讲述了php实现多维数组中每个单元值(数字)翻倍的方法.分享给大家供大家参考.具体分析如下: 前提:一个多维数组,它的每个最小单元值都为数字. 要求:写一个函数,将最小单元值翻倍. 代码如下 <?php $arr = array(1,3,'a'=>20,'b'=>array(2,4,6,'c'=>7)); function arr2($arr){ foreach($arr as $key=>$v){ if(!is_array($v)){ $arr[$key] *= 2

php获取二维数组中key键值的例子

在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>array( 'id' => 6, 'name' => '李四' ) ); 目的就是要取到key为name的集合,得到这个结果: $arr2 = array(   0=>'张三',   1=>'李四'   ); 这里有几种方法: 1:最简单的,foreach遍历数组: foreach (

PHP递归删除多维数组中的某个值

今天在做业务逻辑的过程中,需要在一个不确定的多维数组中删除某个特定的key,查了挺长时间加上自己的修改,终于满足了业务逻辑,该方法在修改后应该可以适用于很多地方,所以记录下来以备后用,我这里是一个多维数组,还是json_encode后的,主要目的是删除所有old_tags_id数组中有tag_id=264的数据,顺便要删除相应的tag_name,还有 addtag要减1,,代码如下: 先放递归函数,当然这里是核心,很多人看了这个应该就已经知道如何使用了. public function deal

[剑指Offer]5.二维数组中的查找

题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路 [算法系列之三十三]杨氏矩阵 代码 /*--------------------------------------- * 日期:2015-07-19 * 作者:SJF0115 * 题目: 5.二维数组中的查找 * 网址:http://www.nowcoder.com/books/coding-interviews/a

二维数组中的查找概述

这一题给跪,c++死活超时...后来main函数改成用c就好了... 算法: /* 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数. 输入的第二行包括一个整数t(1<=t<=1000000):代表要查找的数字.

php计算多维数组中所有值总和的方法

本文实例讲述了php计算多维数组中所有值总和的方法.分享给大家供大家参考.具体实现方法如下: php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和; 计算多维数组所有值的和就要自定义函数了; ? 1 2 3 4 5 6 7 8 9 10 function get_sum($array) { $num = 0; foreach($array as $k => $v) { if(is_array($v)) { $num += get_sum($v); } }

php使用unset()删除数组中某个单元(键)的方法

 这篇文章主要介绍了php使用unset()删除数组中某个单元(键)的方法,实例分析了unset函数在删除数组单元时的使用技巧,需要的朋友可以参考下     本文实例讲述了php使用unset()删除数组中某个单元(键)的方法.分享给大家供大家参考.具体分析如下: unset既可以删除变量,也可以删除数组中某个单元.但要注意的是,数组不会重建索引. 实例如下: ? 1 2 3 4 5 6 <?php $arr = array("朝阳区","海淀区","

c-如何定义一个自增之后在二维数组中移动到下一行的指针?

问题描述 如何定义一个自增之后在二维数组中移动到下一行的指针? 如何定义一个自增之后在二维数组中移动到下一行的指针?如何定义一个自增之后在二维数组中移动到下一行的指针? 解决方案 自增是不能移动到下一行的,自增实现的是++, 解决方案二: 用二重数组,比如 int ** arr; arr += 第一维长度; 解决方案三: int a[m][n]={""}; *a+1;表示下一行; *(a+1):表示下一个元素位置. 若果now<n,移动到x行的当前位置:a[m*x+now]. 解

二维数组中的查找

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 解题思路 从右上角元素开始遍历,若小于目标,则删除整行:若大于目标,则删除整列.每次执行都会删除一行或一列,最多执行2n次. 实现代码 class Solution { public: bool Find(vector<vector<int> > array,int target) { int rend =