如何在php中从多维数组中获取特定值
我使用如何在php中从多维数组中获取特定值,php,arrays,Php,Arrays,我使用print\r语句显示数组 Array ( [0] => Array ( [0] => stdClass Object ( [id] => 1 [name] => Price [value] => 18,000 [type] => textfield [group] => 1 [pu
print\r
语句显示数组
Array (
[0] => Array (
[0] => stdClass Object (
[id] => 1
[name] => Price
[value] => 18,000
[type] => textfield
[group] => 1
[published] => 1
[ordering] => 1
[alias] => Price
)
[1] => stdClass Object (
[id] => 2
[name] => Brand
[value] => Nokia
[type] => select
[group] => 1
[published] => 1
[ordering] => 2
[alias] => Brand
)
[2] => stdClass Object (
[id] => 3
[name] => Mobile Model
[value] => X-plus
[type] => textfield
[group] => 1
[published] => 1
[ordering] => 3
[alias] => MobileModel
)
[3] => stdClass Object (
[id] => 4
[name] => Contact Name
[value] => XYZ
[type] => textfield
[group] => 1
[published] => 1
[ordering] => 4
[alias] => ContactName
)
[4] => stdClass Object (
[id] => 5
[name] => Email
[value] => XYZ@gmail.com
[type] => textfield
[group] => 1
[published] => 1
[ordering] => 5
[alias] => Email
)
[5] => stdClass Object (
[id] => 6
[name] => Contact Number
[value] => 03328914989
[type] => textfield
[group] => 1
[published] => 1
[ordering] => 6
[alias] => ContactNumber
)
[6] => stdClass Object (
[id] => 7
[name] => Province
[value] => KPK
[type] => select
[group] => 1
[published] => 1
[ordering] => 7
[alias] => Province
)
[7] => stdClass Object (
[id] => 8
[name] => City
[value] => Peshawar
[type] => textfield
[group] => 1
[published] => 1
[ordering] => 8
[alias] => City
)
)
)
我只想得到品牌的价值。实现这一目标的适当方法是什么 您必须指定要获取的表的索引:
echo print_r($table[1]);
试试这个
<?php
foreach($your_array[0] as $arr)
{
echo $arr->name;
}
?>
在输出中添加一些空格,以便首先真正理解结构
Array (
[0] => Array (
[0] => stdClass Object (
[id] => 1 [name] => Price [value] => 18,000 [type] => textfield [group] => 1 [published] => 1 [ordering] => 1 [alias] => Price
)
[1] => stdClass Object (
[id] => 2 [name] => Brand [value] => Nokia [type] => select [group] => 1 [published] => 1 [ordering] => 2 [alias] => Brand
)
[2] => stdClass Object (
[id] => 3 [name] => Mobile Model [value] => X-plus [type] => textfield [group] => 1 [published] => 1 [ordering] => 3 [alias] => MobileModel
)
让我们调用主数组$arr
。我们注意到的第一件事是,出于某种原因,它位于另一个数组中,因此所有内容都在$arr[0]
中。如果您知道该品牌将保持在索引[2],您可以简单地使用以下内容:
$brand = $arr[0][2]->value; // Assigns "Nokia" to $brand
否则,我们总是可以遍历您拥有的数组($arr
)并找到谁的名字是Brand。大概是这样的:
$brand = '';
foreach ($arr[0] as $obj) {
if ($obj->name == 'Brand') {
$brand = $obj->value;
break;
}
}
您正在将一个数组与一个对象组合。 您可以通过这种方式访问变量$a的“品牌”,该变量包含以下结构:
$brand = FALSE;
foreach ($a as $a1) {
if (is_array($a1)) {
foreach ($a1 as $a2) {
if (is_object($a2) && $a2->name == 'Brand') {
$brand = $a2;
break;
}
}
}
}
变量$brand将包含结果对象,该对象的名称为“brand”,如果未找到“brand”,则为FALSE。与“别名”相比,您还可以对其进行增强。将数组包装到变量中
$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',
)
这样,您就可以在您的情况下调用特定属性
$brand = array_column($records, 'Brand');
print_r($brand);
可以使用
$var[0]
访问数组,使用->name
访问对象属性。根据需要将它们链接到$var[1][2]->三个->四个[5]->六个[7][8][9]->十个。哪个索引有您的品牌?