php 数组 元素集合的表达问题???

[复制链接]
查看11 | 回复3 | 2011-9-12 07:52:50 | 显示全部楼层 |阅读模式
$a=array(array(\'多\',\'多\',\'多\',\'多\',\'少\',\'少\'),array(\'多\',\'少\',\'少\',\'多\',\'少\',\'少\'),array(\'多\',\'少\',\'少\',\'多\',\'少\',\'少\'),array(\'多\',\'少\',\'少\',\'多\',\'少\',\'少\'),array(\'多\',\'少\',\'少\',\'多\',\'少\',\'少\'),array(\'多\',\'少\',\'少\',\'多\',\'少\',\'少\'),array(\'多\',\'少\',\'少\',\'多\',\'少\',\'少\'));当$f=\'多\'时,数组如上列;当$f=\'少\'时,数组中的元素值互换。即每个元素只能选择两个值中的一个,当条件变化时,每个位上的值正好互换。注意,不能有其他值。类似于两个值的集合,非此即彼。PHP中如何表达和实现????
回复

使用道具 举报

千问 | 2011-9-12 07:52:50 | 显示全部楼层
当$f=\'少\'时,数组中的元素值互换。==========描述不明确,需要举一个“元素值互换”后的数组的数据样本。追问原值为‘多’的位,则换为非多,即\'少\'。反之亦然。如原来数组为:多多少少少少多多更新后数组为:少少多多多多少少
回复

使用道具 举报

千问 | 2011-9-12 07:52:50 | 显示全部楼层
其实这种只有2种可能的情况,用“位运算”是效率最高的,也是正常应该采用的结构。这样用“多”、“少”字符串比较,效率是非常低的,每个汉字就浪费了15倍-23倍不等的空间和处理时间。但你已经写成这种,我就顺着写吧。$a=.........//$a如原题$f=\'少\';if(strcmp($f,\'少\')===0){$rev_a=array();foreach($aas$i=$b){$rev_a[$i]=array();foreach($bas$k=$v)$rev_a[$i][]=strcmp($v,\'多\')===0?\'少\':\'多\';}$a=unset($rev_a);}var_dump($a);==========输出array0=array0=string\'少\'(length=2)1=string\'少\'(length=2)2=string\'少\'(length=2)3=string\'少\'(length=2)4=string\'多\'(length=2)5=string\'多\'(length=2)1=array0=string\'少\'(length=2)1=string\'多\'(length=2)2=string\'多\'(length=2)3=string\'少\'(length=2)4=string\'多\'(length=2)5=string\'多\'(length=2)2=array0=string\'少\'(length=2)1=string\'多\'(length=2)2=string\'多\'(length=2)3=string\'少\'(length=2)4=string\'多\'(length=2)5=string\'多\'(length=2).........5=array0=string\'少\'(length=2)1=string\'多\'(length=2)2=string\'多\'(length=2)3=string\'少\'(length=2)4=string\'多\'(length=2)5=string\'多\'(length=2)6=array0=string\'少\'(length=2)1=string\'多\'(length=2)2=string\'多\'(length=2)3=string\'少\'(length=2)4=string\'多\'(length=2)5=string\'多\'(length=2)
回复

使用道具 举报

千问 | 2011-9-12 07:52:50 | 显示全部楼层
这个...想~~想
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行