PHP 把二维数组按下标拆分成一维数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 把二维数组按下标拆分成一维数组相关的知识,希望对你有一定的参考价值。
把一个二维数组按他的每一个下标全部拆成单个的一维数组 有现成函数或者方法吗
参考技术Athinkphp将二维数组变为标签适用的一维数组
方法一:
$projectList=arr1tag($projectList,array('','
请选择
'),'project_name');
//
其中
$list
为传值过来的二维数组,
$default
为默认值,
$k
为指定的表字段
function arr1tag($list,$default='',$k='')
$tmp='';
if(array($list))
if(array($default))
$tmp[$default[0]]=$default[1];
foreach ($list as $k1=>$v1)
$tmp[$k1+1]=$v1[$k];
return $tmp;
方法二参考文献(http://houdunwang.com/lesson.html):
$projectList=arr2tag($projectList,array('','
请选择
'),'');
//
根据数组下标获取对应值
function array_index2val($array,$index=0)
$value='';
if(is_array($array))
$i=0;
foreach($array as $val)
if($i===$index)
$value=$val;
break;
$i++;
return $value;
//
把数据库中调出的数组转换成可以使用模版标签的数组,其中
$default
为默认值,
$k
为指
定的表字段
function arr2tag($arr,$default=NULL,$K=NULL)
$tmp='';
if(is_array($arr))
if(is_array($default))
$tmp[$default[0]]=$default[1];
if($type==1)
$tmp[$default[2]]=$default[3];
foreach ($arr as $key=>$val)
if(is_array($K))
$tmp[$val[$K[0]]]=$val[$K[1]];
else
$tmp[array_index2val($val,0)]=array_index2val($val,1);
return $tmp;
方法三:
将读取数据库的内容直接转换为一维数组,
该方法大多用于
select
标签
$this->where($where)->getField('id,name');
得出的内容为
array(
'id' => 'name',
)
方法四参考文献(http://bbs.houdunwang.com/)
<?php
// 后盾网团队
$arr = array(
1 => array(
'a' => 12,
'b' => 34,
),
2 => array(
'c' => 56,
'd' => 78,
),
);
$res = doXxxx($arr);
var_dump($res);
function doXxxx($arr = array())
$data = array();
if (!is_array($arr) || empty($arr))
return $data;
foreach ($arr as $key => $item)
$data += $item;
return $data;
参考技术B 有点明白了,我以前也写过这样的代码,代码有通用性,可以求解此类问题:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim A(3, 5) As Integer
A(1, 1) = 5
A(1, 2) = 6
A(1, 3) = 4
Dim intMaxInt As Integer = intMax(A(1, 1), A(1, 2))
Dim i As Integer
For i = 1 To 3
intMaxInt = intMax(intMaxInt, A(1, i))
Next
MessageBox.Show("数组最大值为" & intMaxInt.ToString)
For i = 1 To 3
If A(1, i) = intMaxInt Then
MessageBox.Show("最大值所对应的二维下标是" & i.ToString)
End If
Next
End Sub
Private Function intMax(ByVal intA As Integer, ByVal intB As Integer)
If intA >= intB Then
Return intA
Else
Return intB
End If
End Function
你在窗体上加个Button就行了
我的回答望你满意 希望给最佳答案 谢谢 参考技术C <?php
// PHP官方团队
$arr = array(
1 => array(
'a' => 12,
'b' => 34,
),
2 => array(
'c' => 56,
'd' => 78,
),
);
$res = doXxxx($arr);
var_dump($res);
function doXxxx($arr = array())
$data = array();
if (!is_array($arr) || empty($arr))
return $data;
foreach ($arr as $key => $item)
$data += $item;
return $data;
本回答被提问者采纳
C#一维数组,二维数组,多维数组
所谓的数组,就是相同数据类型的元素的元素按一定顺数排列的集合,就是把有限个类型相同的变量用一名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号称为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量,数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合成为数组。
数组又分为一维数组,二维数组,多维数组
一维数组用一个整数来索引,多维数组用两个或多个整数来索引。
一、数据类型[] 变量名 = new 数据类型[长度];
二、string[] sss = new string[] { "aaa", "bbb", "ccc", "ddd", "eee","fff" };
三、string[] sss = new string[5] { "aaa", "bbb", "ccc", "ddd", "eee" };
一维数组的赋值 变量名[索引] = 值;
一维数组的取值 变量 = 变量名[索引];
int a; int[] sz = new int[3] { 1, 5, 7 };//定义一个数组 a = sz[0];//定义一个空的变量将第一个变量换出来 sz[0] = sz[2];//将第一个变量换成第三个 sz[2] = a;//将第三个换成第一个 for (int i = 0; i < sz.Length; i++) Console.Write(sz[i]); Console.ReadLine()
二维数组:
int []a=new string[2,2]{{1,2},{3,4}};
这是一个二维数组,[2,2]中括号里面的第一个2表示有两个一维数组;第2个2表示一维数组里面有两个变量
三维数组: int[]a=new string[2,2,2]{{{1,2},{3,4}},{{5,6},{7,8}}};
三维数组【2,2,2】
第一个表示一共有2个二维数组 ,第二个2表示每个二维数组有两个一维数组;
以上是关于PHP 把二维数组按下标拆分成一维数组的主要内容,如果未能解决你的问题,请参考以下文章