我得到两个数组
Array
(
[0] => 1990
[1] => 1991
[2] => 1992
[3] => 1993
[4] => 1994
[5] => 1995
[6] => 1996
[7] => 1997
[8] => 1998
[9] => 1999
[10] => 2000
[11] => 2001
[12] => 2002
[13] => 2003
[14] => 2004
[15] => 2005
[16] => 2006
[17] => 2007
[18] => 2008
[19] => 2009
[20] => 2010
[21] => 2011
[22] => 2012
[23] => 2013
)
和
Array
(
[0] => Array
(
[year] => 2011
[conv_value] => 80
)
[1] => Array
(
[year] => 2012
[conv_value] => 95
)
[2] => Array
(
[year] => 2004
[conv_value] => 60
)
[3] => Array
(
[year] => 2000
[conv_value] => 55
)
)
并希望在第一个数组中找到第二个数组的年份匹配并创建一个长度正好的新数组第一个数组搜索应该是:
如果找到年份,则会设置新索引名称 conv_value 包含来自第二个数组索引 conv_value 的值,如果未找到,则 conv_value 将是空的。
像这样Array
(
[0] => Array
(
[year] => 1990
[conv_value] =>
)
[1] => Array
(
[year] => 1991
[conv_value] =>
)
[2] => Array
(
[year] => 1992
[conv_value] =>
)
[3] => Array
(
[year] => 1993
[conv_value] =>
)
[4] => Array
(
[year] => 1995
[conv_value] =>
)
[5] => Array
(
[year] => 1996
[conv_value] =>
)
[6] => Array
(
[year] => 1997
[conv_value] =>
)
[7] => Array
(
[year] => 1998
[conv_value] =>
)
[8] => Array
(
[year] => 1999
[conv_value] =>
)
[9] => Array
(
[year] => 2000
[conv_value] => 55
)
[10] => Array
(
[year] => 2001
[conv_value] =>
)
[11] => Array
(
[year] => 2002
[conv_value] =>
)
[12] => Array
(
[year] => 2003
[conv_value] =>
)
[13] => Array
(
[year] => 2004
[conv_value] => 95
)
[14] => Array
(
[year] => 2005
[conv_value] =>
)
[15] => Array
(
[year] => 2006
[conv_value] =>
)
[16] => Array
(
[year] => 2007
[conv_value] =>
)
[17] => Array
(
[year] => 2008
[conv_value] =>
)
[18] => Array
(
[year] => 2009
[conv_value] =>
)
[19] => Array
(
[year] => 2010
[conv_value] =>
)
[20] => Array
(
[year] => 2011
[conv_value] => 80
)
[21] => Array
(
[year] => 2012
[conv_value] => 95
)
[22] => Array
(
[year] => 2013
[conv_value] =>
)
)
我编写了脚本
for ( $y = 0; $y < sizeof($cc); $y++ ){
for ( $z = 0; $z < sizeof($years); $z++ ){
if ($cc[$y]['year'] == $years[$z]) {
echo 'Hay<br>';
}else{
echo 'Nahee hay<br>';
}
}
}
但没有得到结果..
我在做错了。?
答案 0 :(得分:1)
尝试使用in_array ...
if (in_array($cc[$y]['year'], $years)) {
答案 1 :(得分:0)
这是很长的代码,但我写了它&amp;它解决了我的问题:
<?php
// all years
for ($i = 1990; $i <= (date('Y')+1); $i++){
$years[] = $i;
}
// db years
$i=0;
foreach ( $cur_conv as $key ){
$cc[$i]['year'] = $key['year'];
$cc[$i]['conv_value'] = $key['conv_value'];
$i++;
}
// make array which contain only years
for($i=0; $i<sizeof($cc); $i++){
$db_years[] = $cc[$i]['year'];
}
// finally search local array in db array
for($j=0; $j<count($years); $j++)
{
$index = array_search($years[$j], $db_years);
if ( $index === FALSE )
{
$new_arr[$j]['year'] = $years[$j];
$new_arr[$j]['conv_value'] = '';
} else {
$new_arr[$j]['year'] = $cc[$index]['year'];
$new_arr[$j]['conv_value'] = $cc[$index]['conv_value'];
}
}
?>