我有一个标题为$rebate_by_product_data
的动态多维数组:
Array
(
[0] => Array
(
[id] => 93
[start_date] => 2014-06-01
[end_date] => 2014-06-30
[count] => 10000
[rebate_type_id] => 2
[created_at] => 1400148462
[updated_at] => 1400148462
[applicable_states] => Array
(
[0] => Array
(
[id] => 446
[state_id] => 2
[rebate_id] => 93
[created_at] => 1400148462
[updated_at] => 1400148462
[state_name] => Alaska
)
[1] => Array
(
[id] => 447
[state_id] => 14
[rebate_id] => 93
[created_at] => 1400148462
[updated_at] => 1400148462
[state_name] => Indiana
)
[2] => Array
(
[id] => 448
[state_id] => 23
[rebate_id] => 93
[created_at] => 1400148462
[updated_at] => 1400148462
[state_name] => Minnesota
)
[3] => Array
(
[id] => 449
[state_id] => 35
[rebate_id] => 93
[created_at] => 1400148462
[updated_at] => 1400148462
[state_name] => Ohio
)
[4] => Array
(
[id] => 450
[state_id] => 42
[rebate_id] => 93
[created_at] => 1400148462
[updated_at] => 1400148462
[state_name] => Tennessee
)
)
[rebate_product] => Array
(
[0] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 13
[product_name] => Budwiser
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
[1] => Array
(
[product_id] => 16
[product_name] => Fosters
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
)
[saleable_unit] => Array
(
[id] => 169
[quantity] => 20
[pack_of] => 10
[volume] => 30
[volume_unit_id] => 9
[amount] => 40
[created_at] => 1400148462
[updated_at] => 1400148462
)
)
[1] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 14
[product_name] => Kingfisher Strong
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
[1] => Array
(
[product_id] => 15
[product_name] => Tuborg
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
)
[saleable_unit] => Array
(
[id] => 170
[quantity] => 60
[pack_of] => 50
[volume] => 70
[volume_unit_id] => 20
[amount] => 80
[created_at] => 1400148462
[updated_at] => 1400148462
)
)
)
)
[1] => Array
(
[id] => 99
[start_date] => 2014-05-29
[end_date] => 2014-05-30
[count] => 12
[rebate_type_id] => 2
[created_at] => 1400163679
[updated_at] => 1400248387
[applicable_states] => Array
(
[0] => Array
(
[id] => 500
[state_id] => 1
[rebate_id] => 99
[created_at] => 1400248387
[updated_at] => 1400248387
[state_name] => Alabama
)
[1] => Array
(
[id] => 501
[state_id] => 12
[rebate_id] => 99
[created_at] => 1400248387
[updated_at] => 1400248387
[state_name] => Idaho
)
[2] => Array
(
[id] => 502
[state_id] => 14
[rebate_id] => 99
[created_at] => 1400248387
[updated_at] => 1400248387
[state_name] => Indiana
)
[3] => Array
(
[id] => 503
[state_id] => 27
[rebate_id] => 99
[created_at] => 1400248387
[updated_at] => 1400248387
[state_name] => Nebraska
)
)
[rebate_product] => Array
(
[0] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 12
[product_name] => Signature Scotch Whiskey
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
[1] => Array
(
[product_id] => 13
[product_name] => Budwiser
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
[2] => Array
(
[product_id] => 15
[product_name] => Tuborg
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
)
[saleable_unit] => Array
(
[id] => 195
[quantity] => 10
[pack_of] => 12
[volume] => 100
[volume_unit_id] => 7
[amount] => 200
[created_at] => 1400248388
[updated_at] => 1400248388
)
)
[1] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 16
[product_name] => Fosters
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
[1] => Array
(
[product_id] => 14
[product_name] => Kingfisher Strong
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
)
[saleable_unit] => Array
(
[id] => 196
[quantity] => 2
[pack_of] => 12
[volume] => 200
[volume_unit_id] => 9
[amount] => 77777
[created_at] => 1400248388
[updated_at] => 1400248388
)
)
)
)
[2] => Array
(
[id] => 100
[start_date] => 2014-06-26
[end_date] => 2014-06-30
[count] => 10000
[rebate_type_id] => 2
[created_at] => 1400240035
[updated_at] => 1400243964
[applicable_states] => Array
(
[0] => Array
(
[id] => 495
[state_id] => 2
[rebate_id] => 100
[created_at] => 1400247125
[updated_at] => 1400247125
[state_name] => Alaska
)
[1] => Array
(
[id] => 496
[state_id] => 14
[rebate_id] => 100
[created_at] => 1400247125
[updated_at] => 1400247125
[state_name] => Indiana
)
[2] => Array
(
[id] => 497
[state_id] => 23
[rebate_id] => 100
[created_at] => 1400247125
[updated_at] => 1400247125
[state_name] => Minnesota
)
[3] => Array
(
[id] => 498
[state_id] => 35
[rebate_id] => 100
[created_at] => 1400247125
[updated_at] => 1400247125
[state_name] => Ohio
)
[4] => Array
(
[id] => 499
[state_id] => 42
[rebate_id] => 100
[created_at] => 1400247125
[updated_at] => 1400247125
[state_name] => Tennessee
)
)
[rebate_product] => Array
(
[0] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 13
[product_name] => Budwiser
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
[1] => Array
(
[product_id] => 16
[product_name] => Fosters
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
)
[saleable_unit] => Array
(
[id] => 193
[quantity] => 20
[pack_of] => 10
[volume] => 30
[volume_unit_id] => 9
[amount] => 40
[created_at] => 1400247125
[updated_at] => 1400247125
)
)
[1] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 14
[product_name] => Kingfisher Strong
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
[1] => Array
(
[product_id] => 15
[product_name] => Tuborg
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
)
[saleable_unit] => Array
(
[id] => 194
[quantity] => 6000
[pack_of] => 500
[volume] => 700
[volume_unit_id] => 9
[amount] => 805
[created_at] => 1400247125
[updated_at] => 1400247125
)
)
)
)
[3] => Array
(
[id] => 102
[start_date] => 2014-05-20
[end_date] => 2014-05-31
[count] => 545
[rebate_type_id] => 2
[created_at] => 1400264987
[updated_at] => 1400264987
[applicable_states] => Array
(
[0] => Array
(
[id] => 505
[state_id] => 2
[rebate_id] => 102
[created_at] => 1400264987
[updated_at] => 1400264987
[state_name] => Alaska
)
[1] => Array
(
[id] => 506
[state_id] => 3
[rebate_id] => 102
[created_at] => 1400264987
[updated_at] => 1400264987
[state_name] => Arizona
)
)
[rebate_product] => Array
(
[0] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 12
[product_name] => Signature Scotch Whiskey
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
)
[saleable_unit] => Array
(
[id] => 200
[quantity] => 7
[pack_of] => 10
[volume] => 88
[volume_unit_id] => 7
[amount] => 56
[created_at] => 1400264987
[updated_at] => 1400264987
)
)
)
)
[4] => Array
(
[id] => 103
[start_date] => 2014-05-07
[end_date] => 2014-05-29
[count] => 12456
[rebate_type_id] => 2
[created_at] => 1400266051
[updated_at] => 1400266051
[applicable_states] => Array
(
[0] => Array
(
[id] => 507
[state_id] => 3
[rebate_id] => 103
[created_at] => 1400266051
[updated_at] => 1400266051
[state_name] => Arizona
)
[1] => Array
(
[id] => 508
[state_id] => 5
[rebate_id] => 103
[created_at] => 1400266051
[updated_at] => 1400266051
[state_name] => California
)
)
[rebate_product] => Array
(
[0] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 12
[product_name] => Signature Scotch Whiskey
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
[1] => Array
(
[product_id] => 16
[product_name] => Fosters
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 1
)
)
[saleable_unit] => Array
(
[id] => 201
[quantity] => 1
[pack_of] =>
[volume] => 1
[volume_unit_id] => 10
[amount] => 4
[created_at] => 1400266051
[updated_at] => 1400266051
)
)
[1] => Array
(
[products] => Array
(
[0] => Array
(
[product_id] => 13
[product_name] => Budwiser
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
[1] => Array
(
[product_id] => 15
[product_name] => Tuborg
[manufacturer_id] => 37
[company_name] => Amazon
[rebate_variant_id] => 2
)
)
[saleable_unit] => Array
(
[id] => 202
[quantity] => 1
[pack_of] =>
[volume] => 1
[volume_unit_id] => 10
[amount] => 5
[created_at] => 1400266051
[updated_at] => 1400266051
)
)
)
)
)
从上面可以看到,实际数组的大小可以非常大,也可以非常小。这取决于用户输入的数据。现在如果你仔细观察这个数组在每个键为[products]
的内部数组中有更多的数组。但是在[products]
键下的每个内部数组中,键[manufacturer_id]
具有与它相关联的相同值37。
我想把这个值赋给一个新变量,就是这样。我不想要上面数组中的任何数据。所以我认为要从这个大数组中得到一个值应用很多循环并不是个好做法。我想在最小值为0的情况下得到这个值。代码行。我该如何做到这一点?
有人能在这方面帮帮我吗?如果你决定循环。我知道你说过你不想循环,但是3个循环并不多。所以我还是帮你做了,万一你决定改变主意了。
//Loop through your array
foreach($rebate_by_product_data AS $key => $product_data){
//Check if the rebate_product instance has been set
if(!isset($product_data['rebate_product'])){
//If it hasn't skip this loop continue onto the next
continue;
}
//Loop through the rebate_products
foreach($product_data['rebate_product'] AS $products){
//rebate_products should all have manufacturer_id's ?
foreach($products AS $product){
//Get your manufacturer ID.
$manufacturer_id = $product['manufacturer_id'];
}
}
}
如果你真的不想循环。
//Second way is to just call the indexes off one by one, statically, if you only need one instance of the manufacturer_id
$manufacturer_id = $rebate_by_product_data[0]['rebate_product'][0]['products'][0]['manufacturer_id'];
请记住我没有重新创建您的数组。所以这可能是一个错误。将根据需要调整循环或静态调用