php 合并

xbp102n0  于 2023-10-15  发布在  PHP
关注(0)|答案(3)|浏览(123)

此问题已在此处有答案

Checking if ANY of an array's elements are in another array(8个回答)
3天前关闭。
这可能是一个愚蠢的问题,但我未能结合合并多个elseif。我相信一定有更聪明的办法。你有什么主意吗?

<?php
$level_ids = leaky_paywall_subscriber_current_level_ids();

if (!empty($level_ids)) {
    if (in_array(2, $level_ids)) {
        echo 'DO THIS';
    } elseif (in_array(3, $level_ids)) {
        echo 'DO THIS';
    } elseif (in_array(4, $level_ids)) {
        echo 'DO THIS';
    } elseif (in_array(6, $level_ids)) {
        echo 'DO THIS';
    } elseif (in_array(7, $level_ids)) {
        echo 'DO THIS';
    } elseif (in_array(9, $level_ids)) {
        echo 'DO THIS';
    } elseif (in_array(10, $level_ids)) {
        echo 'DO THIS';
    } else {
        echo 'DO THAT';
    }
}

我试着把合并结合得更巧妙,但它不起作用。
非常感谢您的帮助把!

2w2cym1i

2w2cym1i1#

你写的方式没有错。我会根据One True Brace Style稍微不同地格式化代码,但那是因为我一直都在:

if (...) {
  echo 'DO THIS';
} elseif (...) {
  echo 'DO THIS';
} else {
  echo 'DO THAT';
}
slsn1g29

slsn1g292#

定义一个数组,每个数组应该做什么,就像这样!

<?php

function someFunction(): string
{
    return 'hello';
}

function doSomething(): string
{
    return 'howdy';
}

function doSomethingElse(): string
{
    return 'hi';
}

$levels = [
  1 => 'someFunction',
  2 => 'doSomething',
  3 => 'doSomethingElse',
];

$level = 1;

if (array_key_exists($level, $levels)) {
    $toCall = $levels[$level];

    echo $toCall() . "\n";
} else {
    echo 'unknown code';
}

在这里试试https://3v4l.org/KBDRJ

pwuypxnk

pwuypxnk3#

if ([] === array_intersect([ 2, 3, 4, 6, 7, 9, 10 ], leaky_paywall_subscriber_current_level_ids())) {
  echo 'DO THAT';
} else {
  echo 'DO THIS';
}

相关问题