帮下忙,这问题已经困惑了我好几天了。

ghmax 2015-09-28 09:23:29
如果GID等于ID就添加新值,请问怎样实现呢?

...全文
151 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xuzuning 2015-09-29
$start 中的 王五 为什么消失了?什么规则
回复
断点Bingo 2015-09-29
$start = array(
    array('id'=>11,'name'=>'张三','title'=>'上班'),
    array('id'=>19,'name'=>'李四','title'=>'没上班'),
    array('id'=>18,'name'=>'王五','title'=>'下班')
);
$saler = array(
    array('gid'=>19,'salernum'=>'10','num'=>'80'),
    array('gid'=>18,'salernum'=>'11','num'=>'81'),
);

foreach($start as $key=>$val){
    foreach($saler as $v){
        if($val['id'] == $v['gid']){
            $start[$key]['num'] = $v['num'];
            break;
        }
        $start[$key]['num'] = '0';
    }
}
var_dump($start);
array
  0 => 
    array
      'id' => int 11
      'name' => string '张三' (length=6)
      'title' => string '上班' (length=6)
      'num' => string '0' (length=1)
  1 => 
    array
      'id' => int 19
      'name' => string '李四' (length=6)
      'title' => string '没上班' (length=9)
      'num' => string '80' (length=2)
  2 => 
    array
      'id' => int 18
      'name' => string '王五' (length=6)
      'title' => string '下班' (length=6)
      'num' => string '81' (length=2)
回复
xuzuning 2015-09-29
$start = array(
	array('id' => 11, 'name' =>  '张三', 'title' => '上班'),
	array('id' => 19, 'name' =>  '李四', 'title' => '没上班'),
	array('id' => 18, 'name' =>  '王五', 'title' => '下班'),
	);

$saler = array(
	array('gid' => 19, 'salernum' => '10', 'num' => '80'),
	array('gid' => 18, 'salernum' => '11', 'num' => '81'),
	);

//格式化 $start
foreach($start as $item) $r[$item['id']] = $item;

//赋值
foreach($saler as $item)
  if(isset($r[$item['gid']])) $r[$item['gid']]['num'] = $item['num'];

$start = array_values($r);
print_r($start);
Array
(
    [0] => Array
        (
            [id] => 11
            [name] => 张三
            [title] => 上班
        )

    [1] => Array
        (
            [id] => 19
            [name] => 李四
            [title] => 没上班
            [num] => 80
        )

    [2] => Array
        (
            [id] => 18
            [name] => 王五
            [title] => 下班
            [num] => 81
        )

)

你总得知道自己要做什么的
回复
xuzuning 2015-09-29
$start = array(
	array('id' => 11, 'name' =>  '张三', 'title' => '上班'),
	array('id' => 19, 'name' =>  '李四', 'title' => '没上班'),
	array('id' => 18, 'name' =>  '王五', 'title' => '下班'),
	);

$saler = array(
	array('gid' => 19, 'salernum' => '10', 'num' => '80'),
	array('gid' => 18, 'salernum' => '11', 'num' => '81'),
	);

//格式化 $start
foreach($start as $item) $r[$item['id']] = $item;

//赋值
foreach($saler as $item)
  if(isset($r[$item['gid']])) $r[$item['gid']]['num'] = $item['num'];

$start = array_values($r);
print_r($start);
Array
(
    [0] => Array
        (
            [id] => 11
            [name] => 张三
            [title] => 上班
        )

    [1] => Array
        (
            [id] => 19
            [name] => 李四
            [title] => 没上班
            [num] => 80
        )

    [2] => Array
        (
            [id] => 18
            [name] => 王五
            [title] => 下班
            [num] => 81
        )

)

你总得知道自己要做什么的
回复
ghmax 2015-09-29
我知道啊,但是关键是怎么遍历呢?
回复
断点Bingo 2015-09-29
遍历两次就可以了啊
回复
ghmax 2015-09-29
意思就是如果GID和ID是一样的话就显示num啊,不然的话NUM等于0也行的。关键是不知道怎么遍历啊。帮下忙嘛。
回复
相关推荐
发帖
PHP
创建于2008-08-27

1.9w+

社区成员

“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
申请成为版主
帖子事件
创建了帖子
2015-09-28 09:23
社区公告
暂无公告