【问题标题】:how we check one array element and put in another array row wise in php我们如何检查一个数组元素并在 php 中逐行放入另一个数组
【发布时间】:2016-04-13 07:51:07
【问题描述】:

下面是我的规则数组 在这个数组外观中,临时。 例如 Outlook 包含值 Sunny、overcase 和 rainy,也有是或否值。

$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
            )

    )

)

下面是我的 $filling 数组,我想根据规则数组填充 yes 和 no 的值。 首先我选择所有第一个元素行明智 例如,我们选择 Outlook -> Sunny , temp -> hot 然后通过标题检查上面的数组并计算 yes no 值以及 yes 或 no 的哪个值大于我们分别放入 play field 的值。

$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] => 
    )
)

示例: enter image description here

【问题讨论】:

  • sunny => true 有什么问题?我认为你让它变得比你需要的更复杂。
  • Sir Sunny 包含 yes 和 no 的值
  • 你试过什么??编辑问题并粘贴您的代码....亲爱的@shan
  • 先生,我是 php 新手,我刚刚尝试过
  • $rowarray = array(); foreach($Rules as $countVk => $countV){ foreach($Rules as $countVk => $countV){ for($i=0; $

标签: php arrays sorting multidimensional-array


【解决方案1】:

您可以通过运行online scripts进行检查

你的阵列:

$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)
                )

);

有条件的新数组

$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';
}

输出

echo '<pre>';
print_r($filling);
echo '</pre>';

结果

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
        )

)

【讨论】:

  • 但是先生,我希望填写 Yes 和 No 的 Play fields 值。根据规则数组
  • 取决于什么? Rules 数组有很多值?? Play 字段有多少?
猜你喜欢
  • 1970-01-01
  • 2010-10-06
  • 2022-01-16
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
相关资源
最近更新 更多