Php 如何从关联数组中获取值
这是我的阵列:Php 如何从关联数组中获取值,php,associative-array,Php,Associative Array,这是我的阵列: Array ( [0] => Array ( [0] => S No. [1] => Contact Message [2] => Name [3] => Contact Number [4] => Email ID ) [1] => Array
Array
(
[0] => Array
(
[0] => S No.
[1] => Contact Message
[2] => Name
[3] => Contact Number
[4] => Email ID
)
[1] => Array
(
[0] => 1
[1] => I am interested in your property. Please get in touch with me.
[2] => lopa <br/>(Individual)
[3] => 1234567890
[4] => <a href="mailto:loperea.ray@Gmail.com">loperea.ray@Gmail.com</a>
)
[2] => Array
(
[0] => 2
[1] => This user is looking for 3 BHK Multistorey Apartment for Sale in Sohna, Gurgaon and has viewed your contact details.
[2] => shiva <br/>(Individual)
[3] => 2135467890
[4] => <a href="mailto:sauron82@yahoo.co.in">sauron82@yahoo.co.in</a>
)
)
数组
(
[0]=>阵列
(
[0]=>S编号。
[1] =>联系信息
[2] =>名称
[3] =>联系电话
[4] =>电子邮件ID
)
[1] =>阵列
(
[0] => 1
[1] =>我对您的房产感兴趣。请与我联系。
[2] =>lopa
(个人)
[3] => 1234567890
[4] =>
)
[2] =>阵列
(
[0] => 2
[1] =>该用户正在寻找位于古尔冈Sohna的3 BHK多层公寓,并查看了您的联系方式。
[2] =>湿婆
(个人)
[3] => 2135467890
[4] =>
)
)
如何检索所有数据元素?您可以在 您可以使用围绕要选择的键的方括号访问阵列
[key]
因此,$array[1]
将为您提供:
Array
(
[0] => 1
[1] => I am interested in your property. Please get in touch with me.
[2] => lopa <br/>(Individual)
[3] => 1234567890
[4] => <a href="mailto:loperea.ray@Gmail.com">loperea.ray@Gmail.com</a>
)
或者,您可以使用或循环之类的循环遍历数组的元素
//非常适合于assoc阵列
foreach($key=>$element的数组){
变量转储($key,$element);
}
//具有无缝数字键的阵列的备选方案
$elementscont=count($array);
对于($i=0;$i<$elementscont;++$i){
变量转储($array[$i]);
}
多维数组中有整数索引元素。要从数组中访问单个元素,请使用数组名称及其索引$myArray[1]
。要获取前一个选定数组的内部元素,请使用第二组[index]
-$myArray[1][5]
,依此类推
要从数组中动态获取所有元素,请使用嵌套的foreach
循环:
foreach ($myArray as $key => $values) {
foreach ($values as $innerKey => $value) {
echo $value;
// OR
echo $myArray[$key][$innerKey];
}
}
解决方案是使用:
首先,我们从输入数组的第一个元素获取头。然后我们减少输入
这就产生了:
$array = [['A', 'B', 'C'], ['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3']];
/*
array(3) {
'A' =>
array(3) {
[0] =>
string(2) "a1"
[1] =>
string(2) "a2"
[2] =>
string(2) "a3"
}
'B' =>
array(3) {
[0] =>
string(2) "b1"
[1] =>
string(2) "b2"
[2] =>
string(2) "b3"
}
'C' =>
array(3) {
[0] =>
string(2) "c1"
[1] =>
string(2) "c2"
[2] =>
string(2) "c3"
}
}
*/
我想这就是你要找的
$array = Array
(
0=> Array
(
0 => 'S No.',
1 => 'Contact Message',
2 => 'Name',
3 => 'Contact Number',
4 => 'Email ID'
),
1 => Array
(
0 => 1,
1 => 'I am interested in your property. Please get in touch with me.',
2 => 'lopa <br/>(Individual)',
3 => '1234567890',
4 => '<a href="mailto:loperea.ray@Gmail.com">loperea.ray@Gmail.com</a>',
),
2 => Array
(
0 => 2,
1 => 'This user is looking for 3 BHK Multistorey Apartment for Sale in Sohna, Gurgaon and has viewed your contact details.',
2 => 'shiva <br/>(Individual)',
3 => '2135467890',
4 => '<a href="mailto:sauron82@yahoo.co.in">sauron82@yahoo.co.in</a>',
)
);
$result_array = array();
array_shift($array);
reset($array);
foreach($array as $x=>$array2){
foreach($array2 as $i => $arr){
if($i == 1){
$result_array[$x]['Contact Message'] = $arr;
}elseif($i == 2){
$result_array[$x]['Name'] = $arr;
}elseif($i == 3){
$result_array[$x]['Contact Number'] =$arr;
}elseif($i == 4){
$result_array[$x]['Email ID'] = $arr;
}
}
}
print_r($result_array);
$array=array
(
0=>数组
(
0=>“否”,
1=>“联系信息”,
2=>“名称”,
3=>“联系电话”,
4=>“电子邮件ID”
),
1=>数组
(
0 => 1,
1=>“我对您的房产感兴趣。请与我联系。”,
2=>“lopa
(个人)”,
3 => '1234567890',
4 => '',
),
2=>数组
(
0 => 2,
1=>“此用户正在寻找位于古尔冈Sohna的3 BHK多层公寓出售,并查看了您的联系方式。”,
2=>“湿婆
(个人)”,
3 => '2135467890',
4 => '',
)
);
$result_array=array();
数组移位($array);
重置($阵列);
foreach($x=>$array2的数组){
foreach($array2为$i=>$arr){
如果($i==1){
$result_数组[$x]['Contact Message']=$arr;
}elseif($i==2){
$result_数组[$x]['Name']=$arr;
}elseif($i==3){
$result_数组[$x]['Contact Number']=$arr;
}elseif($i==4){
$result_数组[$x]['Email ID']=$arr;
}
}
}
打印(结果数组);
你所说的“元素方面”是什么意思?它是完整的数据,你已经得到了。你到底需要什么?现在我想要的是联系信息、姓名、联系号码、电子邮件ID的值。最终的输出是什么样的?我使用相同的方法,但没有得到结果code
foreach($da数据){echo$da[0][1];}/code
您是否在测试环境中打开了display_errors
,并将error_reporting
设置为E_ALL
?如果在foreach循环中选择数组的元素,则数组中必须有3个级别。在你的问题数组中,我只看到两个级别。因此,您可能会尝试从字符串中选择一个条目。这将失败。但是激活错误,PHP会告诉您出了什么问题。
$header = array_map(
function() { return []; },
array_flip( array_shift( $array ) )
); // headers
array_reduce( $array , function ($carry, $item) {
$i = 0;
foreach( $carry as $k => $v ) {
$carry[$k][] = $item[$i++];
}
return $carry;
}, $header );
$array = [['A', 'B', 'C'], ['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3']];
/*
array(3) {
'A' =>
array(3) {
[0] =>
string(2) "a1"
[1] =>
string(2) "a2"
[2] =>
string(2) "a3"
}
'B' =>
array(3) {
[0] =>
string(2) "b1"
[1] =>
string(2) "b2"
[2] =>
string(2) "b3"
}
'C' =>
array(3) {
[0] =>
string(2) "c1"
[1] =>
string(2) "c2"
[2] =>
string(2) "c3"
}
}
*/
$array = Array
(
0=> Array
(
0 => 'S No.',
1 => 'Contact Message',
2 => 'Name',
3 => 'Contact Number',
4 => 'Email ID'
),
1 => Array
(
0 => 1,
1 => 'I am interested in your property. Please get in touch with me.',
2 => 'lopa <br/>(Individual)',
3 => '1234567890',
4 => '<a href="mailto:loperea.ray@Gmail.com">loperea.ray@Gmail.com</a>',
),
2 => Array
(
0 => 2,
1 => 'This user is looking for 3 BHK Multistorey Apartment for Sale in Sohna, Gurgaon and has viewed your contact details.',
2 => 'shiva <br/>(Individual)',
3 => '2135467890',
4 => '<a href="mailto:sauron82@yahoo.co.in">sauron82@yahoo.co.in</a>',
)
);
$result_array = array();
array_shift($array);
reset($array);
foreach($array as $x=>$array2){
foreach($array2 as $i => $arr){
if($i == 1){
$result_array[$x]['Contact Message'] = $arr;
}elseif($i == 2){
$result_array[$x]['Name'] = $arr;
}elseif($i == 3){
$result_array[$x]['Contact Number'] =$arr;
}elseif($i == 4){
$result_array[$x]['Email ID'] = $arr;
}
}
}
print_r($result_array);