如何在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]->十个
。哪个索引有您的品牌?