php 循环数组 需要跟 array(%E5%B9%BF%E4%B8%9C,%E5%B0%8F%E7%81%B5%E9%80%9A,prodContent);

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 循环数组 需要跟 array(%E5%B9%BF%E4%B8%9C,%E5%B0%8F%E7%81%B5%E9%80%9A,prodContent);相关的知识,希望对你有一定的参考价值。

SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodId
[value] => 10003
)

)
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodContent
[value] => 30
)

)
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodPrice
[value] => 29.73
)

)
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodIsptype
[value] => %E8%81%94%E9%80%9A
)

)
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodDelaytimes
[value] => 5%E5%88%86%E9%92%9F
)

)
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodProvinceid
[value] => %E5%B9%BF%E4%B8%9C
)

)
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => prodType
[value] => %E5%B0%8F%E7%81%B5%E9%80%9A
比对符合条件的 结果取出 prodId ,如果能给回答另追加财富。

参考技术A php 数组搜索函数 array_search()就可以搞定 或者自己循环判断 参考技术B 假设你这些个内容是存在$dataList里··
foreach($dataList as $data)
if($data->name == xxxx)
echo $data->value;




不是很清楚你要对比什么追问

Array
(
[prodContent] => 30
[prodPrice] => 29.94
[prodIsptype] => %E8%81%94%E9%80%9A
[prodDelaytimes] => 5%E5%88%86%E9%92%9F
[prodProvinceid] => %E6%B1%9F%E8%A5%BF
[prodType] => %E5%9B%BA%E5%AE%9A%E7%94%B5%E8%AF%9D
)
这两个数组。第一个数组中的值跟这个多维数组的值是否相等,相等就取出
prodId 也就是1003 加我qq397002270

追答

$arr = array(xxxx); // 你的第一个数组
$newArr = array();

foreach($dataList as $data)
$newArr[$data->name] = $newArr[$data->value];


然后你再比较$arr和$newArr呗···一样的话·$newArr['prodId']就是你想要的·

php循环遍历多个数组[重复]

【中文标题】php循环遍历多个数组[重复]【英文标题】:php looping through multiple arrays [duplicate] 【发布时间】:2012-02-28 14:23:17 【问题描述】:

好的,所以我有两个数组

$array_one([a]=>2,[b]=>1,[c]=>1);
$array_two([a]=>1,[b]=>2,[c]=>1);

我希望能够同时遍历这两个数组,以便进行简单的比较。我查看了使用 foreach 循环,但我一次只能处理一个数组的信息。我还研究了合并数组,但我看不到这样做的用途,因为我需要键和值来进行比较。有没有人可以解决这个问题?我很感激你在先进的时间。

具体的比较我想要的东西到这个程度

if ($keyone == $keytwo && $valuetwo <= $valueone)

   print_r ($array_two);

是否可以使用递归来循环而不是使用和迭代循环?

【问题讨论】:

你想如何使用这个比较? 【参考方案1】:
$array_one = array (
    'a' => 2,
    'b' => 1,
    'c' => 1
);
$array_two = array (
    'a' => 1,
    'b' => 2,
    'c' => 1
);


$iterator = new MultipleIterator ();
$iterator->attachIterator (new ArrayIterator ($array_one));
$iterator->attachIterator (new ArrayIterator ($array_two));

foreach ($iterator as $item)

    if ($item [0] > $item [1])
    
        ...
    

确实有点多余,但我从中看到了某种美。

【讨论】:

这……太美了…… 我真的很喜欢 SPL 迭代器的强大功能。这在函数式编程中称为“zip”。我希望在 PHP 的未来有更多很棒的迭代器和实用程序。 我喜欢这个代码色情方面。【参考方案2】:

如果它们具有相同的键,您可以遍历这些键并使用它们来索引数组,使用 array_keys:

foreach(array_keys($array_one) as $key) 
    // do something with $array_one[$key] and $array_two[$key]

如果您担心某些键不存在,可以尝试(例如)array_key_exists($key,$array_two)

【讨论】:

应该是foreach,而不是for。【参考方案3】:
$array_one = array('a'=>2,'b'=>1,'c'=>1); 
$array_two = array('a'=>1,'b'=>2,'c'=>1);
$keys = array_keys($array_one);
for($x=0;$x<sizeof($array_one);$x++)
    if($array_one[$keys[$x]] == $array_two[$keys[$x]])  
        echo "equal key:".$keys[$x]."\n";
    

输出: 等价键:c

另一个更好哈哈。

【讨论】:

【参考方案4】:

您可以使用 foreach 轻松做到这一点。

$array_one([a]=>2,[b]=>1,[c]=>1);
$array_two([a]=>1,[b]=>2,[c]=>1);

foreach($array_one as $array_one_key => $array_one_value) 
    foreach($array_two as $array_two_key => $array_two_value) 
        if ($array_one_key == $array_two_key && $array_two_value <= $array_one_value) 
            print_r ($array_two);
        
    

【讨论】:

这会输出 $array_two 三次【参考方案5】:

我研究过使用 foreach 循环,但我一次只能处理一个数组的信息。

如果两个数组的key相同,可以使用foreach():

foreach($array_one as $key => $value)

  // do something to the first array
  $array_one[$key] = doSomething($value);

  // do something else to the second array
  $array_two[$key] = doSomethingElse($array_two[$key]);

【讨论】:

【参考方案6】:
/* Make sure the array pointer is in the first position. */
reset($leftarray);
reset($rightarray);

/* Loop through the arrays. */
$i=0;
while ($i < $totalitems)
   echo current($leftarray)."<br>".
         current($rightarray)."<br>"; 
    next($leftarray);
    next($rightarray);                                                     
    $i=$i+1;
   

【讨论】:

【参考方案7】:
<?php
foreach($array_one as $k => $v)

  $result = $v . $array_two[$k];

?>

【讨论】:

【参考方案8】:

可能有更好的方法,但这将遍历两个数组,对 array_one 使用 foreach,对 array_two 使用 reset、next 和 key。

$array_one = array('a'=>2,'b'=>1,'c'=>1,'x'=>3,'y'=>4);
$array_two = array('a'=>1,'b'=>2,'c'=>1,'d'=>3,'e'=>8);     

$v2 = reset($array_two);
$k2 = key($array_two);

foreach ($array_one as $k1 => $v1) 
    if ($k1 == $k2 && $v1 == $v2 ) 
        echo "$k1 == $k2 && $v1 == $v2\n";
     elseif ($k1 == $k2) 
        echo "$k1 == $k2 Keys match\n";
     elseif ($v1 == $v2) 
        echo "$v1 == $v2 Values match\n";
     else 
        echo "$k1 $v1  $k2 $v2 No match\n";
           
    $v2 = next($array_two);
    $k2 = key($array_two);

【讨论】:

以上是关于php 循环数组 需要跟 array(%E5%B9%BF%E4%B8%9C,%E5%B0%8F%E7%81%B5%E9%80%9A,prodContent);的主要内容,如果未能解决你的问题,请参考以下文章

PHP循环数组,jquery打印每个id值

如何在不使用PHP的循环的情况下获取对象数组的索引

PHP数组循环的问题

php数组函数array_column:不用循环就能提取多维数组内容

php怎么操作才能把这个二维数组加进数据库里面

使用数组的一组索引进行操作,而不在 php 中使用循环