【问题标题】:PHP Special treatment on an array [duplicate]PHP 对数组的特殊处理 [重复]
【发布时间】:2017-06-20 07:17:38
【问题描述】:

我有这个数组:

$firstArray = [ 'location', 'address', 'streetNumber' ];

从该字符串变量中提取:

$string = "location.address.streetNumber"

我想用这些变量在另一个数组中动态获取一个值:

$value = $secondArray[$firstArray[0]][$firstArray[1]][$firstArray[2]];`

但不直接使用键([0]、[1]、...)。

有可能吗?

非常感谢!

【问题讨论】:

  • 您能否更清楚地了解您拥有的数据以及您正在使用的任何 PHP 代码?您指定了 0,1,2 - 3,4,5 会是另一个地址吗?还是每次都在 foreach 或类似上填充该数组?
  • 我认为他想做这样的事情:$myValue = $otherArray[$originalArray[0]][$originalArray[1]][$originalArray[2]]
  • location.address.street 有没有赋值?
  • @ShaunakShukla 不,这是为了映射

标签: php arrays


【解决方案1】:

这对你有用吗?

$string = "location.address.streetNumber";

$firstArray = explode('.', $string);
$secondArray = ['location' => ['address' => ['streetNumber' => 'street 854']]];

$ref = &$secondArray;
foreach($firstArray as $val){
    $ref = &$ref[$val];
}

$value = $ref;
unset($ref);

echo $value // street 854

【讨论】:

  • "location.address.streetNumber" 就是一个例子。我只能有 2 个或 5 个键。这必须动态管理。
  • 这是 .. 在 foreach 中尝试:$string = "location.address";var_dump 而不是 echo
  • 是的,抱歉。事实上,我想要的结果是 ['location']['address']['streetNumber']。无法访问该值。
  • 我不明白...对不起
  • 但整个事情都是关于获取数组的值... ^^ 这已经在 foreach $value === $secondArray['location']['address']['streetNumber']
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
  • 2018-09-24
  • 2013-08-25
  • 2012-09-02
  • 2016-09-07
  • 1970-01-01
相关资源
最近更新 更多