我们如何检查一个数组元素,放在另一个阵列排明智的PHP [英] how we check one array element and put in another array row wise in php
问题描述
下面是我的规则阵列
在这阵前景温度。
对于exapample展望包含值晴天,overcase多雨,也有yes或no的值。
$规则=阵列
(
[展望] =>排列
(
[阳光] =>排列
(
[否] => 2
) [多云] =>排列
(
[是] => 1
) [雨天] =>排列
(
[是] => 1
) )[温度] =>排列
(
[热点] =>排列
(
[否] => 2
[是] => 1
) [轻度] =>排列
(
[是] => 1
) ))
以下是我的$填充数组,我要填写是的价值观,也没有按照规则阵列。
首先,我挑所有第一个元素排明智
比如我们选择的前景 - >阳光明媚,温度 - >热,然后上面的数组中按标题查询和统计是没有价值观和肯定的价值或不大于我们分别进入游戏领域
$灌装=阵列
(
[展望] =>排列
( [0] =>晴朗
[1] =>晴朗
[2] =>灰蒙蒙
[3] =>多雨的
)[温度] =>排列
( [0] =>热
[1] =>热
[2] =>热
[3] =>温和
)
[播放] =>排列
( [0] =>
[1] =>
[2] =>
[3] =>
)
)
示例:
这里输入的形象描述。
您可以通过运行在线脚本 <检查/ p>
您的阵列:
$规则=阵列(
瞭望= GT;阵列(阳光=&GT;阵列(否=→2),
雷雨=&GT;阵列(是=大于1),
多雨=&GT;阵列(是=→1)
)
TEMP= GT;阵列(热=&GT;阵列(否=大于2,是=大于1),
轻度=&GT;阵列(是=→1)
));
使用条件新阵列
$灌装=阵列();
$ fill_play =阵列();的foreach($规则$关键=&GT; $值){
$在= 0;
$ in_play = 0;
的foreach($值$键=&GT; $值){
$ key_value = array_keys($值);
为($ J = 0; $ J&LT;计数($ key_value); $ J ++){
为($ I = 0; $ I&LT; $值[$ key_value [$ J]]; $ I ++){
$ fill_play [$关键] [$ in_play ++] = $ key_value [$ J]。
$灌装[$关键] [$在++] = $键;
}
}
}
}
$ YES_NO =阵列();
为($ I = 0; $ I 4;; $ I ++)
$ YES_NO [$ i] = 0;的foreach($ fill_play为$关键=&GT; $值){
为($ I = 0; $ I 4;; $ I ++){
如果($价值[$ i] ==否)
$ YES_NO [$ i] - = 1;
其他
$ YES_NO [$ i] + = 1;
}
}的foreach($ YES_NO为$关键=&GT; $值){
如果($值&GT; = 0)
$灌装['播放'] [$关键] ='是的';
其他
$灌装['播放'] [$关键] ='否';
}
输出
回声'&LT; pre&GT;';
的print_r($充);
呼应'&LT; / pre&GT;';
结果
阵列
(
[展望] =&GT;排列
(
[0] =&GT;晴朗
[1] =&GT;晴朗
[2] =&GT;灰蒙蒙
[3] =&GT;多雨的
) [温度] =&GT;排列
(
[0] =&GT;热
[1] =&GT;热
[2] =&GT;热
[3] =&GT;温和
) [播放] =&GT;排列
(
[0] =&GT;没有
[1] =&GT;没有
[2] =&GT;是
[3] =&GT;是
))
Below is my Rules Array in this array outlook,temp. For exapample Outlook contain values sunny,overcase and rainy and also have yes or no values.
$Rules = Array
(
[Outlook] => Array
(
[Sunny] => Array
(
[No] => 2
)
[Overcast ] => Array
(
[Yes] => 1
)
[Rainy] => Array
(
[Yes] => 1
)
)
[Temp] => Array
(
[Hot] => Array
(
[No] => 2
[Yes] => 1
)
[Mild] => Array
(
[Yes] => 1
)
)
)
and below is my $filling array and i want to fill the values of yes and no according to the rules array. first i pick the all first element row wise example we pick outlook -> sunny , temp -> hot and then check in the above array by heading and count yes no values and which value of yes or no greater then we put in play field respectively.
$filling = Array
(
[Outlook] => Array
(
[0] => Sunny
[1] => Sunny
[2] => Overcast
[3] => Rainy
)
[Temp] => Array
(
[0] => Hot
[1] => Hot
[2] => Hot
[3] => Mild
)
[play] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
)
Example: enter image description here
You can check by running online scripts
Your Array:
$Rules = array(
"Outlook" => array("Sunny" => array("No" => 2),
"Overcast" => array("Yes" => 1),
"Rainy" => array("Yes" => 1)
),
"Temp" => array("Hot" => array("No" => 2, "Yes" => 1),
"Mild" => array("Yes" => 1)
)
);
New array with condition
$filling = array();
$fill_play = array();
foreach($Rules as $key => $value){
$in = 0;
$in_play = 0;
foreach($value as $keys => $values){
$key_value = array_keys($values);
for($j = 0; $j < count($key_value); $j++){
for($i = 0; $i < $values[$key_value[$j]]; $i++){
$fill_play[$key][$in_play++] = $key_value[$j];
$filling[$key][$in++] = $keys;
}
}
}
}
$yes_no = array();
for($i = 0; $i < 4; $i++)
$yes_no[$i] = 0;
foreach($fill_play as $key => $value){
for($i = 0; $i < 4; $i++){
if($value[$i] == 'No')
$yes_no[$i] -= 1;
else
$yes_no[$i] += 1;
}
}
foreach($yes_no as $key => $value){
if($value >= 0)
$filling['Play'][$key] = 'Yes';
else
$filling['Play'][$key] = 'No';
}
Output
echo '<pre>';
print_r($filling);
echo '</pre>';
Result
Array
(
[Outlook] => Array
(
[0] => Sunny
[1] => Sunny
[2] => Overcast
[3] => Rainy
)
[Temp] => Array
(
[0] => Hot
[1] => Hot
[2] => Hot
[3] => Mild
)
[Play] => Array
(
[0] => No
[1] => No
[2] => Yes
[3] => Yes
)
)
这篇关于我们如何检查一个数组元素,放在另一个阵列排明智的PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!