【发布时间】:2013-11-07 11:35:19
【问题描述】:
我需要foreach这个数组的值:
我的代码:
<?php
print_r(array_filter($matches));
?>
此代码的结果:
Array (
[0] => Array (
[0] => Age: // Name
[1] => 22 Yrs. // Value
[2] => Ethnicity: // Name
[3] => Caucasian // Value
[4] => Location: // Name
[5] => London, United Kingdom // Value
现在我想像这样分离/过滤这些值:
$location = 'London, United Kingdom';
$age = '22 Yrs.';
所以我可以简单地做一个echo $age;
备注:在某些情况下,用户没有设置所有值。因此不能保证 Value Age 始终存在于该数组中。因此我需要类似的东西:
如果在数组中找到 "Age:" 则 $age =
我该怎么做?我在这个数组中总共有 33 个名称和 33 个值,需要根据 IF 语句对它们进行过滤,以确保该值是正确的值。
结果来自var_dump($matches);:
array(1) {
[0]=> array(66) {
[0]=> string(202) " Age: "
[1]=> string(157) " 22 Yrs. "
[2]=> string(196) " Ethnicity: "
[3]=> string(146) " Caucasian "
[4]=> string(195) " Location: "
[5]=> string(175) " London, United Kingdom "
结果来自var_export($matches);:
array (
0 => array (
0 => ' Age: ',
1 => ' 22 Yrs. ',
2 => ' Ethnicity: ',
3 => ' Caucasian ',
4 => ' Location: ',
5 => ' London, United Kingdom ',
我是新手,所以如果您有更好的方法来做到这一点,请提出建议。 感谢您的热心帮助。
【问题讨论】:
-
你的数组看起来很奇怪
-
更好的方法是尝试使用关联键与数值来水合数组。否则,您将陷入映射地狱,试图将键映射到特定上下文(键 0 = 年龄)。尝试水合阵列,使其看起来像:
['age'] => '22 years', ['ethnicity'] => ['Caucasian']等... -
你到底是怎么弄成这样的阵列的?
-
作为@MikePurcell,您应该匹配键=>值,这是正确且更好的方法。
-
你可以,我认为这也是@lincb 回应所逃避的,但我强烈建议不要这样做。你可以让它在大门外工作,但维护它可能会导致一些严重的头痛。