根据可能性显示文本
display text depending on possibilities
我有 6 个值。哪些用户可以 select 使用这些值中的任何一个。在这 6 个值中,3 个有计划,3 个没有计划。根据用户 selected 值,我必须显示如下链接:
- withplan link1
- withplan link2
- withplan link3
或
- withoutplan link4
- withoutplan link5
- withoutplan link6
我制作了三个数组:
$userSelected , $targetWith , $targetWithout
$targetWith = array('val1', 'val2', 'val3');
$targetWithout = array('val4', 'val5', 'val6');
用户 selection 有 3 种可能性。
可能性1:用户可以select一个有,一个没有($userSelected = array('val1','val4');
),这样时间OR就会显示。
可能性 2: 如果用户 select 仅具有计划 ($userSelected = array('val1','val2');
),则不应显示 OR。
可能性 3: 如果用户 select 没有计划($userSelected = array('val5','val6');
),则不应显示 OR。
为了显示或我使用了 array_intersect
,但没有按预期工作。如果用户 select 仅具有计划,则显示 OR。
if( (count(array_intersect($userSelected , $targetWith)) != count($targetWith)) || (count(array_intersect($userSelected , $targetWithout)) != count($targetWithout))){
// all of $target not is in $userSelected
echo '<p><strong>-Or-</strong></p>';
}
我也试过了
if((count(array_intersect($userSelected , $targetWith)) > 0) || (count(array_intersect($userSelected , $targetWithout)) > 0)){
// at least one of $target is in $userSelected
echo '<p><strong>-Or-</strong></p>';
}
使用以上两个代码,OR 将显示 2,3 种可能性。应该显示。
我没有弄错。该代码应该如何?如果有任何其他方法可以实现这种可能性,请提出建议。请帮助和指导。提前致谢。
假设您想确定用户的选择是否存在于两个数组中,您可以简单地使用 array_intersect
两次来检查。
<?php
// Ex. http://sandbox.onlinephpfunctions.com/code/248e7414d6a3fdbb2555ac206455a7fa2e894561
$with = ['val1', 'val2', 'val3'];
$without = ['val4', 'val5', 'val6'];
$userSelections = ['val1', 'val6'];
$inBoth =
!empty(array_intersect($userSelections, $with)) &&
!empty(array_intersect($userSelections, $without));
if ($inBoth) {
echo '<p><strong>-Or-</strong></p>';
}
我有 6 个值。哪些用户可以 select 使用这些值中的任何一个。在这 6 个值中,3 个有计划,3 个没有计划。根据用户 selected 值,我必须显示如下链接:
- withplan link1
- withplan link2
- withplan link3
或
- withoutplan link4
- withoutplan link5
- withoutplan link6
我制作了三个数组: $userSelected , $targetWith , $targetWithout
$targetWith = array('val1', 'val2', 'val3');
$targetWithout = array('val4', 'val5', 'val6');
用户 selection 有 3 种可能性。
可能性1:用户可以select一个有,一个没有($userSelected = array('val1','val4');
),这样时间OR就会显示。
可能性 2: 如果用户 select 仅具有计划 ($userSelected = array('val1','val2');
),则不应显示 OR。
可能性 3: 如果用户 select 没有计划($userSelected = array('val5','val6');
),则不应显示 OR。
为了显示或我使用了 array_intersect
,但没有按预期工作。如果用户 select 仅具有计划,则显示 OR。
if( (count(array_intersect($userSelected , $targetWith)) != count($targetWith)) || (count(array_intersect($userSelected , $targetWithout)) != count($targetWithout))){
// all of $target not is in $userSelected
echo '<p><strong>-Or-</strong></p>';
}
我也试过了
if((count(array_intersect($userSelected , $targetWith)) > 0) || (count(array_intersect($userSelected , $targetWithout)) > 0)){
// at least one of $target is in $userSelected
echo '<p><strong>-Or-</strong></p>';
}
使用以上两个代码,OR 将显示 2,3 种可能性。应该显示。
我没有弄错。该代码应该如何?如果有任何其他方法可以实现这种可能性,请提出建议。请帮助和指导。提前致谢。
假设您想确定用户的选择是否存在于两个数组中,您可以简单地使用 array_intersect
两次来检查。
<?php
// Ex. http://sandbox.onlinephpfunctions.com/code/248e7414d6a3fdbb2555ac206455a7fa2e894561
$with = ['val1', 'val2', 'val3'];
$without = ['val4', 'val5', 'val6'];
$userSelections = ['val1', 'val6'];
$inBoth =
!empty(array_intersect($userSelections, $with)) &&
!empty(array_intersect($userSelections, $without));
if ($inBoth) {
echo '<p><strong>-Or-</strong></p>';
}