【问题标题】:array walk and replace in php or Javascript(phpjs)在 php 或 Javascript(phpjs) 中遍历和替换数组
【发布时间】:2009-08-15 06:29:19
【问题描述】:

这是我的数组:

$frndof = array(
        "name" => 'frnd_of_xyx',
        "id" => 001,
        "url" => 'example.com/frnd_of_xyx',
        "address" => array(
                "city" => 'NewZend',
                "zip" => '100450'));
$frndof1 = array(
        "name" => 'frnd_of_xyx1',
        "id" => 0011,
        "url" => 'example.com/frnd_of_xyx1',
        "frnds" => $frndof,
        "address" => array(
                "city" => 'NewZend1',
                "zip" => '100422'));
$a = array(
        array(
                "name" => 'xyx',
                "id" => 001,
                "url" => 'example.com/xyx',
                "address" => array(
                        "city" => 'cochin',
                        "zip" => '100450')),
        array(
                "name" => 'abc',
                "id" => 001,
                "url" => 'example.com/abc',
                "frnds" => $frndof1,
                "address" => array(
                        "city" => 'Bosco',
                        "zip" => '100450')),
        array(
                "name" => 'EFG',
                "id" => 001,
                "url" => 'example.com/EFG',
                "address" => array(
                        "city" => 'NY',
                        "zip" => '100450')));

我需要用

替换下面的数组 array_fig(1)
[frnds] => Array
(
    [name] => frnd_of_xyx
    [id] => 1
    [url] =>example.com/frnd_of_xyx /* this is the unique key */
    [address] => Array
        (
            [city] => NewZend
            [zip] => 100450
        )
)

array_fig(2)

[frnds] => Array
(
    [name] => frnd_of_xyx
    [id] => 1
    [url] =>example.com/frnd_of_xyx /* this is the unique key */
    [address] => Array
        (
            [city] => NewZend_neww
            [zip] => 1004501212122
        )
)

密钥 URL 是唯一密钥。 [frnds] 数组需要替换为新的 [frnds] 数组。 即如何找到以“[url]”键为唯一的父键或数组键。

**注意:**这个数组是用来生成XML的,所以这些是元素和属性,所以是内部元素的概念

【问题讨论】:

  • 这个数组是用来生成xml的so,这些是元素和arrtibutes,所以内部元素的概念
  • 这个数组是json的输出,这个输出作为输入生成XML。

标签: php javascript arrays


【解决方案1】:

由于您没有将键字段用作数组中的实际键,因此唯一可用的技术是线性搜索,即使用 foreach 遍历整个数组。

$found=false;
foreach ($myarray as $key=>$val)
{
    if ($val['url']==$targetURL)
    {
        $myarray[$key]['address']=$newAddress;
        $found=true;
        break; 
    }
}

在 Javascript 中,类似这样的东西

   var found=false;
   var key;
   for (key in myarray)
   {
       if (myarray[key]['url']==targetURL)
       {
             myarray[key]['address']=newAddress;
             found=true;
             break;
       }
   }

【讨论】:

  • 这可以在 Javascript 中实现吗?
  • @Paul Dixon:这个数组用于生成 xml。
  • @Paul Dixon:现在它正在替换地址,但我需要替换具有 url 的完整 [frnds] 数组
  • 我的例子展示了如何循环一个对象,以及如何访问它的成员——你应该可以从这里获取它!
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 2016-02-18
  • 2016-08-08
  • 1970-01-01
  • 2012-01-07
  • 2013-06-11
相关资源
最近更新 更多